← back to pin listPocket backfill — a spill sheet empties into the true-outline gaps of earlier sheets (Jordan 2026-08-31)
kerfmaster pin list · The spec — what we build to
recordStates what the code does today. Auditable against the code — this is the only type that can go stale.
Content last changed 2026-08-31 — computed from the item itself, not typed.
Origin (Jordan, 2026-08-31, on build 153): 'I know the 2 rows on sheet 4 could fit in the gaps on the other 3.' Sheet 4 held 17 parts (15x BNM78840-class + 2 stragglers); sheets 1–3 had only ~1–1.8in of column-top headroom — the space he meant was the concave pockets between the meshed outlines of the ~50in grille brackets, which the packer cannot reach: a closed row keeps only its rightmost profile per y-bin, so interior pockets vanish from its world.
- Mechanism:
split_parts.pocket_backfill(sheets, w, h), called once after packing + stray-flip suppression, before manual moves. For each last-sheet part (biggest first, 0/180 or its locked angle): an occupancy bitmap (0.25in cells, placed outline cells dilated one cell) prefilters candidate positions; survivors are verified by exact point clearance — outline-to-outline at the ruled gap, lead/pierce points at the standoff, both padded for the 0.05in sampling. The moved part's points join the bitmap and hashes immediately, so moved parts respect each other. - All-or-nothing per sheet: if the last sheet cannot FULLY empty, every tentative move is reverted and the layout stands as packed. Partial moves save no sheet and scramble a reviewed layout for nothing.
- Slab rule respected: candidate X is capped at each target sheet's used extent — the clean full-height remnant slab is never spent by automation (spend-the-slab remains the operator's one-click, per nest-spacing-operator-prompt).
- The gate is unchanged: audit_clearance re-measures the finished nest from placed points; build 154 audited 0.2502 against the 0.25 rule, lead clear 0.1598.
- Nest-in-hole is an OPERATOR OPTION (Jordan, 2026-08-31 — ruling, on the stated limit): 'Nesting smaller parts in a large hole should be an option for the operator.' The backfill may place a part inside a LARGE interior cutout of another part when clearance passes; whether it is ALLOWED to is the operator's toggle (interface intent — record, do not build the UI; engine slot when wired: an allow_in_hole flag on pocket_backfill). Default follows the aid-the-operator philosophy: seed from shop preference, overridable per job. Cut order/slug implications of a part-in-hole are not yet modeled (no NC posts for these nests yet; Rev2 post wiring gates that). First production use: build 155 (50 sheets; 20 parts backfilled, emptying what would have been a 51st).