You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Priority: this epic comes after the .bgcode decode epic. Larger scope — it touches the
IR move model, not just a container format.
Problem / outcome
Non-extrusion G-code (diode/GCode lasers, GRBL/LinuxCNC milling, pen plotters) parses geometry
correctly but the FDM-shaped IR mis-classifies the actual work. Evidence gathered this session
(real LightBurn/GRBL laser + synthetic milling/plotter, run through the current parser):
Sample
Productive moves classified as
Tool state
Notable loss
Laser (LightBurn/GRBL)
100% Travel, 0 Extrude
dropped (M4/S)
—
Milling (GRBL/LinuxCNC)
17 Travel + 96 ArcSegment|Travel, 0 Extrude
dropped (M3 S)
G81 drill cycle → 0 geometry
Plotter (Z-pen)
100% Travel
dropped (pen up/down)
—
The cut/draw/burn-vs-rapid distinction collapses universally (no extrusion E to key on); tool
power/state has no per-segment home; layers never fit. But the foundation is sound — arcs
faceted, bounds correct, capability model honest (unavailable, never fabricated).
Scope decision required FIRST (maintainer)
Is the project "cross-vendor toolpath" (CNC/laser/plotter in scope) or "FDM excellent + honest
degradation elsewhere"? Founding docs lean broad; every DD to date is FDM-shaped. Decide before
committing implementation (scope-creep guard).
Scope (if in)
Additive IR move model: motion-command move-kind fallback when E is absent (a Cut/ToolEngaged
bit — note MoveKind is already a bitflag, so it composes like ArcSegment does) + an optional modal tool-state channel (spindle/laser power, pen up/down). Same modal-state need as research(renderer): advanced color modes via modal-state channels (fan/temp/accel/jerk/PA/flow) #180
(advanced color modes) — consider one shared design.
Canned-cycle expansion (G81–G89 drilling → real geometry).
Problem / outcome
Non-extrusion G-code (diode/GCode lasers, GRBL/LinuxCNC milling, pen plotters) parses geometry
correctly but the FDM-shaped IR mis-classifies the actual work. Evidence gathered this session
(real LightBurn/GRBL laser + synthetic milling/plotter, run through the current parser):
Travel, 0ExtrudeTravel+ 96ArcSegment|Travel, 0ExtrudeTravelThe cut/draw/burn-vs-rapid distinction collapses universally (no extrusion
Eto key on); toolpower/state has no per-segment home; layers never fit. But the foundation is sound — arcs
faceted, bounds correct, capability model honest (
unavailable, never fabricated).Scope decision required FIRST (maintainer)
Is the project "cross-vendor toolpath" (CNC/laser/plotter in scope) or "FDM excellent + honest
degradation elsewhere"? Founding docs lean broad; every DD to date is FDM-shaped. Decide before
committing implementation (scope-creep guard).
Scope (if in)
Eis absent (aCut/ToolEngagedbit — note
MoveKindis already a bitflag, so it composes likeArcSegmentdoes) + an optionalmodal tool-state channel (spindle/laser power, pen up/down). Same modal-state need as research(renderer): advanced color modes via modal-state channels (fan/temp/accel/jerk/PA/flow) #180
(advanced color modes) — consider one shared design.
(milling); GRBL / servo pen plotters.
Non-goals (out by definition — not a gap)
.rd), not G-code..ezd, not G-code, different motion model.DD / RR / ADR gate
Gate:
RR-NNN — Non-extrusion toolpath coverage(audit current behavior + scope decision) →DD-NNNaccepted. Evidence + probe scripts already exist as research notes.Phased child-issue plan
RR + scope decision → additive move-model + modal tool-state channel → canned-cycle expansion →
GRBL/laser + milling/plotter dialects → non-extrusion coloring → matrix/docs → exit.
Tests / fixtures / benchmarks
Synthetic laser/milling/plotter fixtures (GRBL/LightBurn, GRBL/LinuxCNC, Z-pen) with expected
move-kind/tool-state; golden-equivalence; do NOT commit user-provided design files.
Risks & deferred work
False confidence about non-extrusion semantics; dialect breadth; keeping FDM behavior unchanged
(capability-gated). Servo-pen (M280) and inch-units (G20) variants for the corpus.
Milestone: Future · Depends on: E2, E4 (and overlaps E8 for 2D) · Blocking: none ·
Related: #180 (shared modal-state design).