kerfmaster pin list · Big capabilities
intentmixedWhat we want to build. Never claimed the present, so it cannot be stale — and must never be read as a description of the code.
Content last changed 2026-08-03 — computed from the item itself, not typed.
Contract — Intake stage
This contract describes a stage we intend to build — it is NOT a description of the code.
takes customer-file
makes raw-geometry
fails if A Bézier flattened into line segments; a PDF clip path read as cut geometry.
Contract last changed 2026-08-06 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.
New input path, and a Metacam gap we want to close: Metacam can’t take a PDF; we want to.
A modern .ai file is a PDF under the hood, so one vector extractor serves PDF and .ai (and SVG). Build the extractor once, get all three inputs. The full vector-input detail is in item 2a.
PDF/Illustrator have no arc primitive; every circle/curve is a cubic Bézier. Generic converters (Inkscape/pstoedit) flatten Béziers into hundreds of tiny lines — the exact ‘polylined curve’ we exist to undo. So the job is NOT ‘convert to DXF’; it’s extract the true Bézier paths and re-fit them into real G2/G3 arcs within tolerance — our healer, fed curves instead of facets. Ignore clip paths (a PDF W n is the artboard clip, not cut geometry).
Content streams may be double-filtered, so the reader must handle chained filters — that conclusion stands, and the code does it. The evidence this item gave for it was wrong both ways (corrected 2026-08-03). It said newer AI PDFs (29.1) use ASCII85+Flate and older (25.2) just Flate. In both samples the page content stream is plain FlateDecode, and both files also carry chained ASCII85+Flate streams elsewhere (thumbnail and private AI data). The Illustrator version is not the discriminator; the reader handles the chain wherever it appears.
Same size/units question as .ai (item 2a): the file may carry no real-world dimension. That convention must be settled before PDF input is trustworthy.