An experiment with coding agents using CadQuery and OpenSCAD revealed that visual renders and tool status reports missed critical CAD defects, which were only caught by numerical checks like volume measurements.
An agent building a threaded hose adapter in CadQuery read four renders of its own part and noticed nothing. The core cylinder was gone. The thread root sat exactly on the core radius, the kernel's union dropped the solid without a word, and what was left was floating helical turns around nothing. The kernel's report on that part: valid=True, solids=1. What caught it was a volume check, 7,065 mm³ where 10,323 was expected. That's one run out of six in a recent ModelRift comparison: three printable parts, each modeled in CadQuery and in OpenSCAD, one agent per cell, capped at 12 versions, unattended. All six parts shipped printable. The part I care about is the 16 failures on the way, 9 of which the tool never reported. The TL;DR was: "Renders caught nothing that mattered." Images caught coarse stuff (four mounting posts deleted by a cavity subtraction) and nothing subtle. Every defect that would have ruined a print was found by a number: a volume, an angle, an interference test. CadQuery said valid=True for the part with no core, and valid=True again for a negative-volume solid after the tolerance was loosened. OpenSCAD's Manifold backend said Status: NoError for an export with 4 non-manifold edges and 60 zero-area triangles, and reported nothing across roughly 45 invocations on a task where it had deleted posts and misplaced slots. So they parsed every STL with a script that trusted neither tool, and that script is what the results table means by "clean". I don't do CAD. I read this as a coding-agent experiment where the artifact happens to be a mesh, because the channels are the ones a coding agent has too: a picture of the output, the tool's own status line, and a number somebody measured from outside. The picture and the status line passed the broken part. The number failed it. Standard caveats: one agent per cell, so some of the spread is agent variance; the OpenSCAD previews were drawing every facet with no outlines at the time; six runs is six runs. The line I keep coming back to is theirs, about how the two toolchains check fit: an echo only helps if somebody reads it, an assert fails the build on its own. The charts in our posts get checked by someone looking at the PNG, which is an echo. Anyone got a counterexample? a screenshot or render check that caught something the numeric check in the same loop missed. What was the number measuring when it missed?
A controlled benchmark compares CadQuery and OpenSCAD for AI agents to generate functional 3D-printable parts, revealing similar capability but differences in failure modes and tool-specific advantages.
CADWorld is a benchmark for evaluating computer-use agents in long-horizon mechanical CAD workflows using FreeCAD, revealing significant gaps between current AI performance and expert levels.
A developer describes building a Claude Code skill that verifies AI-generated CAD geometry before export, catching silent OpenCASCADE failures like un-shelled parts and misplaced cuts using volume, bounding box, and point classification checks.
This paper introduces a new task formulation for CAD generation that incorporates finite element analysis as feedback, along with improved supervision signals like a text-only blueprint schema and multi-view image renderer, leading to better geometric reconstruction on benchmarks.
RA-CAD presents a state-aware agent for text-to-CAD generation that uses a Generate–Execute–Critique–Rewrite loop, with feedback-driven agent optimization via Group Relative Policy Optimization. It achieves state-of-the-art execution validity and geometric quality on CADFusion and Text2CAD benchmarks.