← back to pin listThe placement rulebook — so the next file does not need Aristide
kerfmaster pin list · The spec — what we build to
rulingA decision by Aristide or Jordan. True because it was decided; it can be superseded, but it cannot be stale.
Content last changed 2026-08-10 — computed from the item itself, not typed.
Contract — design stage
This contract states a decision, not an implementation.
takes contours ?
makes contours ?
fails if A spare count typed as an input again; a layout lesson applied to MVT only; a hand-built layout treated as a picture instead of a stored answer.
Contract last changed 2026-08-07 — computed, not typed. Dated separately from the text above, so neither date can speak for the other.
Aristide, 2026-08-07: “what are you learning that can be put into rules, so the next file does NOT need me?” These are the rules. They apply to every job from here on, not to MVT; each carries who taught it and the file it was taught with.
- 1. Waste is real estate. Any closed region that is scrap anyway — a pocket between two elements of one part, the slug of a hole, a gap the layout already encloses — is free material, and it is spent before open stock. Fill order: interior pockets → other parts’ slugs → enclosed gaps → open stock, and a shortfall past that is reported, never silently spilled. (Taught by the washer grids drawn inside the template’s own waste bays.)
- 2. A part carries a part. A plate whose interior hole fits another plate of the same job carries it — the triangle rides the ring’s centre hole. The hole’s slug was already scrap and the arrangement costs zero envelope, so it is tried before any meshing. Applies recursively.
- 3. Concavities mesh. Where one silhouette’s valley accepts another’s lump, slide them together to a stated gap, trying orientations — the cloud lesson: flip 180° if the interlock is better; the photo lesson: the ring rides up into the cloud’s valley. The number being minimised is the layout’s bounding rectangle, because that is the sheet bought.
- 4. Consumables fill the waste. When a job cuts stock parts (washers, spacers), the count is not the input — the waste is. Cut at least the consumed count plus the field-adjustment spares, then keep filling the enclosed waste; the surplus is inventory for future jobs, because the metal is bought either way and a washer in a pocket costs cut time only. This supersedes the fixed 35-spare margin — spares are an output of available waste, floored by the field need.
- 5. The teaching file is the acceptance test. Every layout Aristide or Jordan builds by hand is a stored answer: a rule is proven when code reproduces the layout unaided, and every correction they make to our output becomes the next numbered rule in this pin, in the same commit as the code that applies it. MVT answers on file: the test layer (the template), the washer-pocket sheet, and the photo
incoming/1786118155_4007797_file.jpg (ring carrying triangle, ring meshed into the cloud, every pocket filled with extra washers).
Why this is the business mechanism and not just notes: a rule is only an asset when a stranger — or the [[mvt-template-generator]] — can apply it and be checked. Each rule has plain wording, the reason, provenance, and a worked file to diff against. When a new file’s layout comes out needing no correction, that file class no longer needs Aristide; when it does need one, the correction lands here, typed and dated.
Rule 3 amended (Aristide, 2026-08-10, off sheet.png: “this could have been smaller if the code allowed the top cloud to be flipped 180 degrees”): a part's orientation on the sheet is a SCAN VARIABLE (0 and 180), not a rule — upright was the photo's layout choice, wrongly recorded as a constraint. A 180 turn is a rotation, not a mirror: same face up, kerf taper and dross side unchanged. Forbid it per job only when the material carries a finish direction (brushed/grained). On MVT the flip saves 3.30" of sheet height (51.32 → 48.01).