Give Codex only what an engineer would start with.
One drawing. One CAD runtime. One instruction: build the real thing, not a picture of it.
First, it got stuck looking.
Codex tried to compare the views by making crops and zooming into the drawing. A tooling detour ate the run. It never reached CAD.

stop inspecting forever; start building.
A plausible part appears.
It looks like the drawing. Its own coarse checks pass. This is exactly where a demo usually ends.
Then Codex changed its mind.
It noticed that it had treated the eye and support as one 48 mm-deep feature. It rebuilt the support at 35 mm and let only the circular eye reach 48 mm.


“The first model is a valid single solid with a 150 × 48 × 88 mm bounding box. I’ll refine the eye…” Codex trajectory, before the second build
This matters: the agent did not just emit one answer. It built, inspected, reconsidered, and repaired.
Nothing it tested said “wrong.”
Now show it the answer it never saw.
CAD Bench has a held-back reference model. Before comparing anything, we rigidly re-orient it into the Codex frame. Same center. Same scale. Same orientation. Same camera.


They are clearly related. But are they the same engineered object?
It does not trust the picture.
The verifier gets three things: the candidate, a hidden reference model, and a hidden specification. Then it checks two different notions of correctness.
Candidate.FCStd
The model the agent built.
Reference.FCStd
Held back from the agent.
Spec.json
30 expected dimensions and structural parameters.
Geometry fidelity
- solid count
- oriented bounding box
- volume and surface area
- surface types
- principal moments
- aligned face-centre residuals
Spec consistency
- dimensions and diameters
- radii
- counts
- offsets and references
- feature-history measurements
It read most of the numbers. It still built the wrong part.
The outer bounding box was an exact match. That did not save it. Same size is not the same thing as same geometry.
One caveat: 27/30 does not mean “90% understood.” The spec checker searches for matching measurements, so a value can occasionally match the wrong feature. That makes the geometry branch even more important.
Codex told itself a different geometric story.
The hidden reference and Codex both use sensible CAD operations. They just compose the part differently.








The failure was not “it cannot read numbers.” It was: the numbers were attached to the wrong geometric relationships.
The agent improved against the tests it had.
Its checks were useful. They were just too weak to establish engineering fidelity.
What it checked
- bounding box
- one valid closed solid
- editable feature tree
- plausible rendered appearance
What it did not check
- R3 / R6 final profile geometry
- material distribution and volume
- surface types and topology
- whether each dimension belonged to the right relationship
Self-verification is only as strong as the verification kit.
Put CAD-Bench-like checks inside the agent loop.
Do not wait until the end to discover that the model is beautifully valid and geometrically wrong. Give the agent engineering-grade ways to fail early.
If we want an agent to behave like an engineer, we have to give it engineering-grade ways to know when it is wrong.
What does it mean to understand an engineering drawing?
Reading the numbers is not enough. Making a recognizable shape is not enough. So where should we draw the line?