Existing tools¶
triaina builds on existing open-source tools and only adds what was missing. Each project link below was checked on 2026-10-01.
What triaina reuses¶
| Need | Project | License | How triaina uses it |
|---|---|---|---|
| Klipper, Moonraker, Fluidd on the printer | Stock ELEGOO firmware, or OpenNept4une | GPL-3.0 | Runs as is. triaina only adds its macros to printer.cfg |
| Printer API | Moonraker | GPL-3.0 | mode_switch.py uploads, starts jobs and runs macros over its HTTP API |
| Installing Klipper add-ons (camera) | KIAUH | GPL-3.0 | Optional, for crowsnest on the Pi |
| G-code with blade-offset compensation | Kiri:Moto drag-knife mode | MIT | Recommended generator, runs in the browser |
| G-code with blade-offset compensation | DXF2GCODE | open source | Alternative: knife offset entered as tool diameter |
| Cutter GUI | Inkcut | GPL-3.0 | Alternative desktop sender; output to file |
| Path cleanup and ordering | vpype and vpype-gcode | MIT | Optional, for scripted pipelines |
| Blade-offset algorithm reference | psol/drag_knife | MIT | Reference only (early Python 2.7 code) |
What triaina adds¶
No packaged Klipper drag-knife macros or Neptune 4 cutter setup exist that we could find, so these are triaina's own:
| Part | Why |
|---|---|
| Klipper macros | Mode switch with heaters off, saved and restored limits, knife offset, plunge refused outside cutter mode |
| gcode_preprocessor.py | Makes any generator's output safe for this machine: strips heaters and extruder, maps Z and M3/M5 to the macros, caps feed |
| Design conversion | SVG, DXF, PDF, AI, EPS, PNG, JPG to cut G-code on the Pi, with blade-offset compensation (method as in Inkcut / psol/drag_knife), containment-aware cut order and a preview. Parsing reuses svgelements, ezdxf, poppler, ghostscript and potrace |
| mode_switch.py | One command to switch modes and upload or start a job from the Pi |
| setup_pi.sh | Idempotent Pi provisioning |
| Knife mount | No Neptune 4 drag-knife mount is published; remix a generic holder clamp |
How they fit together¶
Kiri:Moto / DXF2GCODE / Inkcut / Inkscape (blade offset, toolpath)
|
v
gcode_preprocessor.py (safety: heaters, macros, feed cap)
|
v
mode_switch.py upload --start (Moonraker HTTP API)
|
v
Neptune 4: stock Klipper + triaina macros