feat: unify CAD workflows on DesignIR 3.0

This commit is contained in:
Jerry
2026-07-28 14:41:26 +08:00
parent 6e33bc0e11
commit b5738e9109
36 changed files with 9690 additions and 1305 deletions
+28 -2
View File
@@ -8,7 +8,7 @@ meaningfully editable.
## Allowed inputs
- Teacher STEP from protected `input/`.
- Candidate DesignIR from `runs/designir/`.
- Candidate DesignIR 3.0 from the private run directory.
- Reconstructed STEP from `runs/rebuilt/`.
- Deterministic compiler version.
- Modification test contract.
@@ -19,13 +19,25 @@ Do not read Agent A chain-of-thought or informal rationale.
Original-state geometry:
- solid and topology counts;
- solid, open-shell, face, edge, and diagnostic vertex counts;
- bounding-box error;
- volume and center-of-mass error;
- symmetric-difference volume;
- analytic feature counts and spatial relationships when available;
- declared validation invariants.
For solid booleans that are numerically unstable on coincident boundaries, run
the registered bidirectional vertex, edge, and face-interior sample-distance
contract. Never silently discard the failed boolean result; report both it and
the fallback distance.
Source independence:
- move or hide the teacher STEP before reconstruction;
- reject source paths, STEP payloads, imported base solids, B-Rep blobs, and
mesh substitutes in the candidate;
- require a deterministic rebuild from DesignIR plus compiler code only.
Parametric behavior:
- rebuild every declared perturbation;
@@ -34,6 +46,20 @@ Parametric behavior:
- preserve constraints and interfaces;
- reject invalid, empty, non-solid, self-intersecting, or unstable results.
For `overall_scale`, require volume to follow the scale factor cubed, center
and bounds to follow the declared pivot transform, and solid/face/edge counts
to remain stable. Record STEP writer vertex normalization separately instead
of confusing geometrically equivalent serialization with feature loss.
Producing a solid is not sufficient. Each perturbation must be connected to an
executable feature, cause an observable target change, and satisfy its
non-target preservation checks. Record the promoted experience IDs actually
used so improvement can be attributed to a specific method.
Report geometry and semantics separately. A geometry-only method may enter the
SurfaceIR experience library, but it must never increase the semantic-edit
promotion count.
## Required output
Write one machine-readable report under `runs/acceptance/` with separate geometry,