Most CAD-generation systems work the way a junior drafter would if forbidden from ever looking back at their own work: one shot, no revision, whatever the model outputs is final. Professional CAD practice runs the opposite loop generate, verify against the drawing, refine, repeat. IterCAD formalizes that loop as a multi-turn agent operating inside an executable CAD sandbox, unifying three tasks: turning a multi-view engineering drawing into parametric CadQuery code, turning a text requirement into code, and editing existing code from natural-language instructions. A two-stage recipe cold-start supervised fine-tuning on expert trajectories, then geometry-aware reinforcement learning with a viable-prefix masking scheme that stops crediting or blaming turns for failures they didn't cause teaches the agent to debug its own runtime errors and correct its own geometry against rendered visual feedback. A new evaluation curve, Chamfer-Distance Tolerance-Recall, closes a long-standing loophole in CAD benchmarking by scoring failed generations as zero recall instead of quietly dropping them from the average.
IterCAD is governed by a "Look and Loop" philosophy. Look leverages multi-view engineering drawings with dimensional constraints as a persistent reference to isolate defects. Loop establishes a multi-dimensional refinement mechanism that integrates compiler, execution, and visual feedback rather than blind regeneration.
A static, open-loop policy can't learn to debug itself from imitation alone. IterCAD bootstraps procedural reasoning first, then hands the policy to closed-loop reinforcement learning to teach genuine self-correction.
Agentic Workflow on IterCAD-Draw closed-loop sandbox feedback, up to 5 turns. IterCAD (built on a 4B backbone) converts the multi-turn budget into accuracy that an order-of-magnitude-larger competitor can't match.
| Model | IR% | AUC-TR | Mean CD | Med. CD | Avg Turn |
|---|---|---|---|---|---|
| GPT-5 | 4.70 | 0.50 | 12.18 | 1.07 | 2.44 |
| Gemini-3-flash-lite | 12.70 | 0.56 | 5.79 | 0.09 | 3.12 |
| GLM-4.6v | 9.70 | 0.43 | 13.72 | 3.27 | 2.59 |
| Qwen3.5-35B-A3B | 37.50 | 0.36 | 12.51 | 0.10 | 3.50 |
| Qwen3.5-4B (backbone) | 62.30 | 0.21 | 13.04 | 0.09 | 4.39 |
| IterCAD (ours) | 0.30 | 0.61 | 5.09 | 0.35 | 2.48 |
| Model | IR% | AUC-TR | Mean CD | Med. CD | Avg Turn |
|---|---|---|---|---|---|
| GPT-5 | 0.50 | 0.79 | 2.14 | 0.05 | 2.31 |
| Gemini-3-flash-lite | 11.00 | 0.51 | 4.27 | 0.06 | 4.23 |
| Qwen3.5-35B-A3B | 11.00 | 0.55 | 7.49 | 0.14 | 3.84 |
| Qwen3.5-4B (backbone) | 63.00 | 0.18 | 9.96 | 1.25 | 4.49 |
| IterCAD (ours) | 1.00 | 0.54 | 7.52 | 0.77 | 2.34 |
Starting from the bare Qwen3.5-4B backbone, every added component compounds. The full recipe SFT, on-policy refinement, GSPO, and GVPM is what closes the gap from a 62.30% invalid ratio to 0.30%.
Open-loop, one-shot CAD generation can't recover from its own mistakes by definition. IterCAD's closed-loop architecture generalizes well beyond its own benchmark confirming the gains aren't an artifact of one evaluation protocol.
CAD GENERATION
ISN'T
ONE-SHOT.
IT'S A
LOOP.