intent
Jordan 2026-11-10: feed folded STEP + shop-corrected flat DXF + material; solve K per part/bend and build the table from the shop's years of trial and error.
Starting point: 2D's step_sheet.py / solve_unfold.py (perimeter-match K solve; K=0.214 provisional on 14 ga from BNM78655, 1 of 7 pairs reconciled). 3D replaces the text STEP reader with a real B-rep kernel (OpenCascade). Waiting on: first pairs (old BNM pairs no longer on this box), tooling question, per-bend vs per-part K.