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,24
generated-library-1-T,True,24,24,3,5917,0
generated-library-2-Trapezoid,True,24,24,2,2150,0
generated-library-3-Ngon,True,24,24,2,2024,0
generated-library-4-Ngon,True,24,24,2,2160,0
generated-library-5-Ring,True,24,24,1,3901,3
generated-library-6-PipeFlange,True,12,12,2,1932,19
generated-ring-inserts,True,16,16,2,2016,2
generated-curved-C,True,16,16,3,6051,0
generated-narrow-U,True,24,24,3,5925,0
generated-stars,True,20,20,1,3901,0
generated-seed-00,True,19,19,2,1886,1
generated-seed-01,True,22,22,2,2016,1
generated-seed-02,True,21,21,2,2150,1
generated-seed-03,True,20,20,1,1012,1
generated-seed-04,True,24,24,1,1080,1
generated-seed-05,True,22,22,2,2050,1
generated-seed-06,True,27,27,2,1932,1
generated-seed-07,True,19,19,1,1032,1
generated-seed-08,True,17,17,1,1100,1
generated-seed-09,True,22,22,2,2070,1
generated-seed-10,True,20,20,2,1968,1
generated-seed-11,True,19,19,2,2100,1
1 case valid placed requested sheets area milliseconds
2 generated-library-0-RoundedRectangle True 24 24 2 1886 24
3 generated-library-1-T True 24 24 3 5917 0
4 generated-library-2-Trapezoid True 24 24 2 2150 0
5 generated-library-3-Ngon True 24 24 2 2024 0
6 generated-library-4-Ngon True 24 24 2 2160 0
7 generated-library-5-Ring True 24 24 1 3901 3
8 generated-library-6-PipeFlange True 12 12 2 1932 19
9 generated-ring-inserts True 16 16 2 2016 2
10 generated-curved-C True 16 16 3 6051 0
11 generated-narrow-U True 24 24 3 5925 0
12 generated-stars True 20 20 1 3901 0
13 generated-seed-00 True 19 19 2 1886 1
14 generated-seed-01 True 22 22 2 2016 1
15 generated-seed-02 True 21 21 2 2150 1
16 generated-seed-03 True 20 20 1 1012 1
17 generated-seed-04 True 24 24 1 1080 1
18 generated-seed-05 True 22 22 2 2050 1
19 generated-seed-06 True 27 27 2 1932 1
20 generated-seed-07 True 19 19 1 1032 1
21 generated-seed-08 True 17 17 1 1100 1
22 generated-seed-09 True 22 22 2 2070 1
23 generated-seed-10 True 20 20 2 1968 1
24 generated-seed-11 True 19 19 2 2100 1