← back to pin list

Mission & the pipeline

kerfmaster pin list · The spec — what we build to

recordmixedStates what the code does today. Auditable against the code — this is the only type that can go stale.

Content last changed 2026-08-03 — computed from the item itself, not typed.

Contract — Cross-cutting stage

This contract describes the code as it runs today.

takes customer-file

makes gcodedelivery

fails if Any stage's own gate fails, or a stage is skipped without saying so.

Contract last changed 2026-08-06 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.

1 open question blocks this pin

cadmaster replaces Metacam CAD. It takes a customer file and turns it into clean, ready-to-run laser G-code for our 80"×160" machines — doing automatically what Metacam does by hand, plus things Metacam can’t.

The pipeline — every file flows through this

  1. Input — DXF / DWG today; PDF and .ai/SVG planned (items 2, 2a). Detect units first.
  2. Heal — re-fit dirty faceted geometry into clean lines + true arcs, within tolerance, no fit-induced jogs (see Healing rules).
  3. QC — topology check: open contours, dangling ends, branches and duplicates (qc.analyze). Island detection is not part of QC — it lives in bridges.islands(); see item 2b.
  4. Bridges — permanent connections that hold a floating island into the finished part (item 2b). After QC, before leads. Not a tab: nest-time tabs are item 3a and post-time slug-retention tabs are item 3b. Build state: bridges.py finds and sizes the bridges a file already contains and proposes a width where an island has none — it never edits geometry, so no bridge is added to the cut path today.
  5. Leads & cut-order — lead-in/out, kerf side (G41/G42), pierce placement, cut sequence (item 4).
  6. Nest — pack copies on the sheet for yield (item 3). Not built: there is no nester in the codebase, so nothing between leads and post places a part on a sheet.
  7. Post — emit Fanuc macro-B G-code with true arcs and the 0.2 margin.

The result is delivered as the hosted comparison board (see Delivery & interface).