Files
cadSet/designir-pipeline/README.md
T
2026-07-27 17:24:04 +08:00

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_circle
  • extrude_rectangle
  • add_cylinder
  • through_hole
  • polar_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