feat(astra): add independent nesting engine and fix hole validation

Replace the Terra scaffold with an independent configuration-space contact placer and bounded stock-plan search. Include plugin tests, synthetic and DXF benchmark drivers, results, and deployment documentation.

Correct shared collision clipping and hole subtraction so curved-hole inserts validate consistently. Cover translated layouts, spacing violations, operand order, winding, and independent boolean-area comparisons.

Validation: 1,293 tests passed with 12 fixture skips; all 34 synthetic/generated and four DXF cases are valid and complete.
This commit is contained in:
aj
2026-09-24 00:14:36 -04:00
parent b6111a5486
commit fc9e46cad3
31 changed files with 1753 additions and 135 deletions
@@ -0,0 +1,24 @@
case,valid,placed,requested,sheets,area,milliseconds
generated-library-0-RoundedRectangle,True,24,24,2,1886,175
generated-library-1-T,True,24,24,2,2016,175
generated-library-2-Trapezoid,True,24,24,2,2150,120
generated-library-3-Ngon,True,24,24,2,2024,536
generated-library-4-Ngon,True,24,24,1,1080,93
generated-library-5-Ring,True,24,24,1,3901,85
generated-library-6-PipeFlange,True,12,12,1,966,46
generated-ring-inserts,True,16,16,2,2016,48
generated-curved-C,True,16,16,2,2150,1929
generated-narrow-U,True,24,24,1,3901,136
generated-stars,True,20,20,1,3901,3118
generated-seed-00,True,19,19,2,1886,578
generated-seed-01,True,22,22,2,2016,403
generated-seed-02,True,21,21,2,2150,1447
generated-seed-03,True,20,20,1,1012,356
generated-seed-04,True,24,24,1,1080,600
generated-seed-05,True,22,22,2,2050,1467
generated-seed-06,True,27,27,2,1932,1251
generated-seed-07,True,19,19,1,1032,724
generated-seed-08,True,17,17,1,1100,980
generated-seed-09,True,22,22,2,2070,930
generated-seed-10,True,20,20,1,984,460
generated-seed-11,True,19,19,1,1050,1151
1 case valid placed requested sheets area milliseconds
2 generated-library-0-RoundedRectangle True 24 24 2 1886 175
3 generated-library-1-T True 24 24 2 2016 175
4 generated-library-2-Trapezoid True 24 24 2 2150 120
5 generated-library-3-Ngon True 24 24 2 2024 536
6 generated-library-4-Ngon True 24 24 1 1080 93
7 generated-library-5-Ring True 24 24 1 3901 85
8 generated-library-6-PipeFlange True 12 12 1 966 46
9 generated-ring-inserts True 16 16 2 2016 48
10 generated-curved-C True 16 16 2 2150 1929
11 generated-narrow-U True 24 24 1 3901 136
12 generated-stars True 20 20 1 3901 3118
13 generated-seed-00 True 19 19 2 1886 578
14 generated-seed-01 True 22 22 2 2016 403
15 generated-seed-02 True 21 21 2 2150 1447
16 generated-seed-03 True 20 20 1 1012 356
17 generated-seed-04 True 24 24 1 1080 600
18 generated-seed-05 True 22 22 2 2050 1467
19 generated-seed-06 True 27 27 2 1932 1251
20 generated-seed-07 True 19 19 1 1032 724
21 generated-seed-08 True 17 17 1 1100 980
22 generated-seed-09 True 22 22 2 2070 930
23 generated-seed-10 True 20 20 1 984 460
24 generated-seed-11 True 19 19 1 1050 1151