mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-30 16:31:07 -04:00
Plan Cutting spent most of its time on work that never changed the outcome: many-holed parts paid quadratic shape-pair and ring-containment costs before any search, every plate was captured twice, and failing plates burned their whole budget in exhaustive fallback passes that never found a plan on 127 production plates. - OverlapMaterial: skip native shape pairs whose bounds are clear by more than the query allowance; gate polygon touch and winding tests on vertex bounds. - LeadMaterialSnapshot: gate ring enclosure tests on ring extents when finding the perimeter and rejecting nested cutouts. - CuttingPlanBatch: capture each plate once; the kept-order retry derives from the same capture through CuttingPlanSnapshot.WithPreservedOrder. - JointCuttingPlanSearch: end the kept-order full pass and the sequence-free recovery and full passes after FallbackStalls (2) stalls' worth of expansions when programs are regenerated; plates with only fixed programs keep the exhaustive search so a refusal stays genuine. On 127 archive plates (lead-ins cleared, 35" scrap cut-offs) total time fell from 164 s to 102 s with identical outcomes; the problem-nest corpus gives the same status and expansion count on every plate. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>