3.8 KiB
DesignIR Pipeline
This directory owns the STEP reconstruction and distillation boundary:
teacher STEP
-> deterministic private evidence extraction
-> reconstruction agent authors DesignIR 2.0
-> isolated compiler rebuilds STEP without teacher access
-> acceptance agent compares teacher and rebuilt STEP
-> deterministic publisher promotes repeated validated experience
Security boundary
| Component | Teacher STEP | Private evidence | DesignIR | Rebuilt STEP |
|---|---|---|---|---|
| Ingestion service | read | write | no | no |
| Reconstruction agent | denied | read | write | request compilation |
| Isolated compiler | denied | no | read | write |
| Acceptance agent | read | read | read | read |
| Publisher | denied | aggregate only | schema only | reports only |
The reconstruction environment must remain functional after the teacher STEP is
removed. scripts/designir_pipeline.py anti-cheat rejects source STEP
references, imported B-Reps, embedded meshes, topology references, and generator
source that calls STEP import APIs.
Workspace
Runtime data is role-separated under workspace/:
For the exact input, process, acceptance, and output locations, see
workspace/README.md.
workspace/
teacher/inbox/ uploaded STEP/STP files
teacher/evidence/ private deterministic evidence
reconstruction/inbox/ evidence packets for Agent A
reconstruction/designir/ authored DesignIR 2.0
reconstruction/output/ independently rebuilt STEP
acceptance/inbox/ manifests visible to Agent B
acceptance/reports/ geometry and editability reports
promotion/candidates/ untrusted generalized methods
promotion/replay_validated/
promotion/promoted/ deterministic published experience
quarantine/ unsupported vocabulary and failed cases
Only .gitkeep files are versioned in runtime directories. Teacher geometry,
private evidence, generated parts, and reports stay local.
DesignIR 2.0
The executable contract is documented by
contracts/designir-2.0.schema.json. It describes coordinate systems, datums,
parameters, expressions, sketches, constraints, features, patterns,
attachments, construction stages, edit interfaces, and validation contracts.
It never contains teacher geometry.
The initial compiler deliberately supports a small, honest vocabulary through both Build123d and SimpleCADAPI adapters:
extrude_circleextrude_rectangleadd_cylinderthrough_holepolar_hole_pattern
Unsupported geometry is quarantined with explicit missing capabilities instead of embedding the source B-Rep.
The SimpleCADAPI adapter also emits its replayable
*.simplecad.model.json operation graph beside the STEP. DesignIR remains the
backend-neutral source of truth.
Agents
agents/reconstruction-agent.md: Agent A authors DesignIR from private evidence and promoted methods, then requests an isolated rebuild.agents/acceptance-agent.md: Agent B independently checks geometry and parameter perturbations against the teacher.
Neither agent publishes experience. config/promotion-policy.json is evaluated
by deterministic code after several independent cases pass.
Commands
Use the CAD Python environment:
../text-to-cad/.venv/bin/python scripts/designir_pipeline.py validate part.designir.json
../text-to-cad/.venv/bin/python scripts/designir_pipeline.py compile \
part.designir.json --output rebuilt.step
../text-to-cad/.venv/bin/python scripts/designir_pipeline.py isolated-rebuild \
part.designir.json --output rebuilt.step --backend simplecadapi
../text-to-cad/.venv/bin/python scripts/designir_pipeline.py accept \
--teacher teacher.step --designir part.designir.json \
--rebuilt rebuilt.step --report acceptance.json