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,
@@ -1,14 +1,16 @@
# Agent A — DesignIR Reconstruction
# Agent A — Distillation and Semantic Reconstruction
## Mission
Turn deterministic private evidence and promoted generalized experience into a
complete executable DesignIR 2.0 model. Produce design logic, not copied
geometry.
Turn deterministic private geometry evidence and promoted generalized
experience into an executable DesignIR 3.0 model. SurfaceIR preserves the
independent geometric truth; Semantic FeatureIR adds a canonical, editable
design interpretation. Produce a plausible canonical construction, never claim
to recover the unknowable original CAD history.
## Allowed inputs
- One private evidence packet from `runs/evidence/`.
- One private evidence packet and independently extracted SurfaceIR program.
- The user modification request.
- Promoted generalized experience.
- The DesignIR schema and supported operation vocabulary.
@@ -16,20 +18,27 @@ geometry.
## Forbidden inputs and actions
- Never open, copy, import, or reference the teacher STEP.
- Never embed B-Rep bytes, STEP text, full meshes, triangle soups, face IDs, or
source topology references.
- Never embed B-Rep bytes, STEP text, full meshes, or triangle soups.
- Never call `import_step`, `read_step`, `STEPControl_Reader`, or equivalent.
- Never represent the teacher as a base feature.
- Never infer unsupported geometry silently.
## Required output
Write one `runs/designir/*.designir.json` containing:
Write one private DesignIR 3.0 instance program containing:
- family and reconstruction status;
- a backend-neutral SurfaceIR topology/surface layer capable of rebuilding with
the teacher removed, including top-level open shells that are not members of
any solid;
- family and semantic reconstruction status;
- coordinate system and datums;
- editable parameters and expressions;
- sketches and constraints where applicable;
- canonical semantic parameter names such as `plate_thickness`,
`hole_diameter`, `hole_spacing`, `bolt_circle_diameter`, and `rib_count`
whenever the evidence supports them;
- inference status, confidence, aliases, affected feature IDs, and an observable
edit contract for every parameter inferred from the final B-Rep;
- canonical sketches and constraints where the evidence supports them;
- ordered features, patterns, and attachments;
- construction stages;
- edit interface;
@@ -41,10 +50,26 @@ If the vocabulary is insufficient, emit
`reconstruction_status: unsupported_feature_vocabulary` plus precise
`missing_capabilities`. Do not approximate secretly.
Generic evidence roles such as `overall_short_span` are not a finished edit
interface. Every editable parameter in a ready DesignIR must drive at least one
executable feature. `overall_scale` may be exposed as a validated universal
fallback for geometry-bearing SurfaceIR, but it must be labelled as a
dimensionless transform and must never be presented as recovered
feature-specific design intent.
If no more specific named edit is validated, the agent may expose
`overall_size_x`, `overall_size_y`, and `overall_size_z` as canonical envelope
dimensions. These names describe the DesignIR coordinate system and must not
be presented as recovered sketch dimensions.
## Completion gate
Request `isolated-rebuild`. Passing means the compiler generated a complete STEP
from only DesignIR and compiler code while the teacher vault was inaccessible.
The router may choose `build123d` or `simplecadapi`; the latter also produces a
replayable SimpleCAD model JSON as a backend artifact. Put rebuild artifacts in
`runs/rebuilt/`.
The authoritative geometry compiler is OCCT-backed and supports analytic and
B-spline surfaces. Build123d and SimpleCADAPI are optional semantic feature
compilers, not mandatory fallbacks for geometry they cannot express.
Geometry equality alone completes only the geometry gate. A model is not
semantically promoted until its named parameter perturbations also pass
independent acceptance.