The one-paragraph version
Zero-to-CAD is a system for creating computer-aided design data from nothing but language-model knowledge plus computation. Instead of collecting hard-to-get human design histories, the authors put a large language model inside a loop where it can write parametric CAD code, run it, look up documentation, and fix errors until the shape is valid. Repeating that loop at large scale produced 999,633 executable, human-readable construction sequences — meaning step-by-step recipes with named sizes like plate thickness, not just final 3D shapes — covering realistic operations like holes, fillets, chamfers, lofts, sweeps, shells, and Boolean unions and cuts. They also release a curated set of 100,000 diverse models. To show the data is useful, they fine-tuned a small 2-billion-parameter vision-language model to look at eight rendered images of a part and write the CAD code to rebuild it, beating the untuned base model and proprietary GPT-5.2 on geometric accuracy and transferring meaningfully, though imperfectly, to real human-designed parts.
The problem they're solving, and why it matters
A CAD model, in professional engineering use, is not just a shape you can see. It is a program, also called a construction history, that records how the shape was built: draw a two-dimensional profile called a sketch, stretch it into three dimensions by an operation called extrusion, cut holes, round edges, combine pieces, and so on. That history encodes design intent because each size is a named parameter an engineer can later change.
Most large 3D datasets lose that history. Datasets with millions of objects typically provide only the final geometry in one of two forms. One form is a boundary representation, often shortened to B-Rep, which describes a solid by its faces, edges, and how they connect. The other form is a mesh, which approximates the surface with many small triangles. Both let you render or measure a shape, but you cannot easily edit a hole diameter or replay the building steps.
The few datasets that do include histories are small or narrow. Fusion 360 Gallery has about 8,600 human designs. DeepCAD has 178,000 sequences, reduced to about 115,000 after removing duplicates according to follow-up work cited by the authors. Both are mostly limited to sketch-and-extrude, meaning simple profiles stretched straight, without the richer vocabulary of real parts such as rounded outer edges called fillets, beveled edges called chamfers, hollowed solids called shells, smooth blends between profiles called lofts, shapes dragged along a path called sweeps, or repeated patterns. A more recent synthetic effort, CAD-Recode, reaches about one million executable programs but is also largely sketch-and-extrude and, according to this paper, uses hard-coded coordinate chains that are difficult to read or edit. Much professional CAD data is also locked behind proprietary file formats and incompatible geometry engines called kernels. The result is a data gap: no large, diverse, replayable source of editable design histories for training AI.
The key idea, in plain words
The authors argue that you do not need to collect more human histories to get started. Language models have already read a great deal about manufactured objects, so they have a rough prior idea that, for example, a mounting bracket usually has a flat plate plus mounting holes, or that a shaft might need a slot for a key that locks rotation.
The problem is that the model cannot reliably write correct CAD code in a single guess. So the paper reframes synthesis as agentic search. The word agentic here simply means the model acts in steps: propose code, run it in a real CAD interpreter, observe the error or resulting shape, look up the correct function signature, and try again. The execution environment acts as a filter for geometric validity, while varied prompts act as a sampler for diversity. The slogan in the paper is converting compute into data: spend a large amount of model computation once to create validated programs, then train smaller specialized models that work in a single pass without needing the expensive repair loop.
A second key choice is to separate deciding what to build from deciding how to build it. First generate many plain-language part descriptions without dimensions, then turn each description into code. That separation is presented as a way to avoid mode collapse, where a generator repeats the same few easy shapes over and over.
How it actually works, step by step
Think of the pipeline as a factory with a librarian, many builders, and strict inspectors.
First, catalog generation. The model is asked to act as a mechanical parts librarian and produce batches of typically 200 concise descriptions, such as a mounting bracket with two through-holes. Descriptions are organized into 65 predefined categories covering structural parts, rotating parts like pulleys and flywheels, enclosures like housings and covers, fasteners, and others. Requesting large batches helps the model avoid repeating itself within its immediate context. Outputs are plain text without dimensions, deduplicated, and saved as a structured list.
Second, code generation from each description. A worker model receives one description plus a system prompt containing 19 design principles, including use named variables, keep the part near the origin, keep sizes under 100 units, build non-trivial composite sketches rather than single rectangles or circles, maintain symmetry where sensible, and add small edge treatments where appropriate. For complex categories, the prompt also includes a reference code example as a pattern to adapt, with explicit instruction not to merely copy its numbers. All code is written in CadQuery, which is a Python-based library for parametric solid modeling where operations are chained together in readable code.
Third, iterative repair with reasoning between tool calls. A typical loop is: reason about the description and write candidate code, call a tool named execute_and_validate to run it, read the error if it fails, optionally search CadQuery documentation with keyword search or pattern matching tools, reason about the fix, and rewrite. The example in the paper fails because a countersunk-hole function is missing a required angle argument, looks up the documentation, and corrects the call. The loop allows up to 10 turns per attempt and up to 100 attempts per design task. Importantly, the prompt forbids fixing errors by deleting features and simplifying down to a trivial box; the model is told to preserve complexity and fix the syntax.
Fourth, three-stage validation. Execution validation runs the code in an isolated process and captures errors. Geometric validation checks that the result is a well-formed solid without self-intersections, consists of exactly one connected solid rather than disconnected pieces, has at least 7 B-Rep faces to reject trivial cubes and cylinders, and has positive volume above a threshold. Export validation requires successful export to both STL, a mesh format used for 3D printing and rendering, and STEP, a standard exchange format for exact CAD solids. Only programs passing all stages enter the dataset. The authors state plainly that this does not enforce full design-for-manufacturability rules, which would depend on process and material; it only biases toward plausible mechanical shapes.
Fifth, infrastructure and curation. Language-model inference ran on a scalable cluster with local serving and memory reuse across conversation turns, while CAD execution ran on up to 3,000 central-processing-unit cores. Generation took about one week on opportunistically available machines, with graphics-processor allocation varying from 2 to 80. For accessibility, the team curated 100,000 models for diversity by rendering eight views of each part, averaging visual features from a vision model called DINOv3, grouping by similarity with a clustering method called k-means, and keeping the central example from each group. They release code, meshes, STEP files, metadata, embeddings, and similarity-search indexes.
What they showed — results, honestly, with limitations
Scale and effort: 999,633 accepted sequences, split into 979,633 for training and 10,000 each for validation and testing. In total about 60.2 billion tokens were processed to generate about 5.59 billion output tokens, averaging 5,638 generated tokens per accepted design. Only 22.3% succeeded on the first attempt; the average successful case needed 3.30 attempts and 4.34 tool calls per conversation. Execution checks dominated tool use, with 3.80 million execution calls versus about 375,000 documentation lookups and 133,000 pattern searches.
Geometric quality: the mean face count is 46.2 for Zero-to-CAD versus 50.7 for the human-designed ABC dataset and 16.4 for CAD-Recode. Zero-to-CAD has 0% below the 7-face threshold and 0% disconnected multi-body solids by construction, compared with 12.9% and 56.3% respectively for CAD-Recode as measured by the authors. Using image-based DINOv2 embeddings, Zero-to-CAD is closer to ABC than CAD-Recode is, with a Fréchet distance — a measure of distributional difference where lower means more similar — of 0.164 versus 0.268, and higher neighborhood coverage at every tested setting, for example 57.2% versus 45.3% coverage. Readability is illustrated by side-by-side code: CAD-Recode style is a long chain of raw coordinates followed by extrusion, while Zero-to-CAD style uses named sizes and ordered steps such as base plate, then reinforcing rib, then cuts, then fillets and chamfers. The authors are explicit that readable here means named parameters and logical order as seen in the released code, not a user study proving engineers understand it better.
Bootstrapping test: can synthetic data teach image-to-CAD-code reconstruction with no real histories? Given eight 256-by-256 views, the model must output executable CadQuery code in one pass. Geometric fidelity is measured mainly by voxelized intersection-over-union, often shortened to IoU, which compares the overlap of 3D occupancy grids at 64-by-64-by-64 resolution after trying rotations every 45 degrees, plus Chamfer distance, often shortened to CD, which measures average surface mismatch where lower is better.
On the held-out Zero-to-CAD test set, the fine-tuned Qwen3-VL-2B model reached 82.1% executable-code success with mean IoU 0.747 and median IoU 0.847, far above the base untuned model at 6.6% success and 0.184 mean IoU. It also beat GPT-5.2, which on a 1,000-sample subset due to cost reached about 72% success and about 0.485 to 0.495 mean IoU depending on reasoning level. On 1,000 human-designed ABC parts as an out-of-distribution test, performance fell as expected: the fine-tuned model reached 61.0% success and 0.377 mean IoU, still above GPT-5.2 High at 66.2% success but 0.344 mean IoU. In other words, GPT-5.2 produced runnable code slightly more often on real parts, but the fine-tuned small model was more geometrically faithful on average. The base model largely failed on both sets.
Limitations stated or evident: the experiment is a demonstration of bootstrapping, not a controlled head-to-head training comparison against DeepCAD or CAD-Recode, which the authors argue cannot express many target operations anyway. Synthetic-to-real transfer remains difficult, with a large in-distribution to out-of-distribution drop. Failure cases include thin walls that break connectivity, misplaced holes, self-intersections, scale drift, and locally plausible but globally incoherent assemblies, which the authors attribute to purely textual reasoning without visual checking. They report preliminary tests with visual feedback but give no detailed numbers, so that claim is unsupported in the text provided. Exact operation frequencies are shown only as a plot without numbers in the excerpt, so the breadth beyond sketch-and-extrude is clear qualitatively but not precisely quantified here.
Why this might matter to me
For spatial reasoning in language and vision-language models, this is evidence that textual design priors can be grounded through execution feedback rather than vision alone. The model never sees the shape while writing code, yet success rises from about one in five first-try cases to a large validated dataset through error messages and documentation. That suggests a path for studying where purely linguistic spatial reasoning breaks — holes in the wrong place, intersections, disconnected bodies — and when visual grounding becomes necessary.
For world models, the construction history is interesting as an actionable, causal representation. A mesh says what the world looks like; a CAD program says what operations create it and what parameters can change. That is closer to a manipulable world model of physical objects, where edits, constraints, and assembly relationships matter.
For text-to-CAD and parametric geometry, the release directly addresses the bottleneck you care about: a million-scale source of replayable, named-parameter programs with fillets, chamfers, shells, lofts, sweeps, and Booleans, plus a diverse 100,000 subset with embeddings for retrieval. It enables training models that output editable code rather than frozen geometry.
For 3D generation and scene representation, it complements mesh-first and B-Rep-first approaches. Direct B-Rep generators can produce valid surfaces but no edit history; this dataset supplies the missing procedural layer. The image-to-sequence result also shows that multi-view images contain enough signal for a compact model to recover parametric structure in-distribution and partially out-of-distribution, which could extend toward image-to-editable-scene pipelines if combined with layout, part decomposition, and constraint solving.
Terms worth knowing
- CAD construction history: the ordered list of modeling steps that built a part. Example: sketch base profile, extrude to thickness, cut four holes, round edges.
- Parametric recipe: CAD code where sizes are named variables, so changing one number updates the design. Example: plate thickness as a variable rather than a hard-coded number.
- B-Rep: boundary representation, an exact description of a solid by faces, edges, vertices, and connectivity. Loses history but preserves precise surfaces.
- Mesh / STL: an approximation of a surface with triangles, useful for rendering and printing but not easily editable as engineering features.
- STEP: a standard file format for exchanging exact CAD geometry between programs.
- Sketch-and-extrude: the simplest CAD workflow: draw a flat profile and stretch it straight into 3D. Powerful but insufficient for many real parts.
- Boolean operation: combining solids by union, subtraction called cut, or intersection. Example: subtract a cylinder to make a hole.
- Fillet / chamfer: treatments that soften a sharp edge. A fillet rounds it; a chamfer cuts it at an angle.
- Loft / sweep / shell: advanced shape operations. A loft blends between different profiles, a sweep drags a profile along a path, and a shell hollows a solid into a thin-walled part.
- CadQuery: a Python library used here to express CAD histories as readable code.
- Agentic search: generating by repeated cycles of writing, executing, observing feedback, and revising, rather than one-shot prediction.
- DINOv2 / DINOv3: vision models used here only to turn rendered images into numerical similarity features for measuring dataset alignment and selecting diverse examples.
- IoU and Chamfer distance: evaluation measures. IoU measures volumetric overlap where higher is better; Chamfer distance measures surface mismatch where lower is better.
- Fréchet distance and k-ball coverage: dataset similarity measures used here to compare synthetic shapes to human-designed ABC shapes.