← 返回 2026-04-28

Zero-to-CAD:无需真实数据、面向百万规模的可解释 CAD 程序的智能体合成 Zero-to-CAD: Agentic Synthesis of Interpretable CAD Programs at Million-Scale Without Real Data

Mohammadmehdi Ataei, Farzaneh Askari, Kamal Rahimi Malekshan, Pradeep Kumar Jayaraman 📅 2026-04-27 👍 9 2026-07-13 08:36
3D 生成 CadQuery 大语言模型智能体 数据合成 视觉语言模型 计算机辅助设计

LLM 智能体闭环合成百万级可执行 CadQuery CAD 序列,无需任何真实历史数据。

前置知识

CAD 构造历史 (Construction Sequence / Construction History)

CAD 模型不仅是一个最终几何形状,而是一串可重放的参数化操作(画草图、拉伸、倒角、布尔运算等),每步都带有命名参数、约束和引用关系,等同于'设计意图'的程序化表达。

本文核心论点正是现有 3D 数据集普遍只提供 B-Rep 或网格,丢失了这种程序化历史,导致 CAD AI 无法学习真正的设计意图;理解这个概念才能抓住论文动机。

边界表示 (B-Rep) 与网格 (Mesh)

B-Rep 用面、边、顶点的拓扑关系加解析曲面描述实体;Mesh 用三角面片离散化表面。二者都是最终几何快照,不携带建模过程。

论文把 ABC、Objaverse 这类仅含 B-Rep/Mesh 的大规模数据集作为对比基线,凸显它们无法支持序列生成任务。

CadQuery 与参数化编程建模

CadQuery 是基于 Python 的开源参数化 CAD 库,把 OpenCascade 内核封装为脚本 API,允许用代码构建草图、拉伸、布尔、倒角等操作并导出 STL/STEP。

整篇论文的合成目标就是生成可执行的 CadQuery 代码而非底层 B-Rep;理解其编程模型才能看懂代码生成与验证流程。

LLM 智能体 (Agentic LLM) 与工具调用

把大语言模型放入'思考—调用工具—观察结果—再思考'的循环,让模型用函数调用 (Function Calling) 查询文档、执行代码、读取反馈,从而完成开放式生成任务。

Zero-to-CAD 的核心技术就是这种闭环:模型写 CadQuery 代码→执行→若失败则查文档→修复→再次执行;这是与传统一次性生成的关键差异。

视觉语言模型 (VLM) 与图像到代码任务

VLM 把视觉编码器与语言解码器相连,可把图像转成文本/代码。'图像到序列 (Image-to-Sequence)' 指给定多视图图像直接输出可执行建模代码。

论文用合成的百万序列微调 Qwen3-VL-2B 来做图像到 CAD 代码的重建,并与 GPT-5.2 等强基线对比,是验证数据集价值的核心实验。

研究动机

CAD AI 训练面临严重的数据缺口:尽管 ABC、Koch 2019 提供了一百万级 B-Rep、Objaverse 提供了海量 3D 模型,但它们都丢失了构造历史——即'设计意图'的参数化程序。少量保留历史的公开数据集如 DeepCAD(178k 条且去重后仅 114,985 条)、Fusion 360 Gallery(仅 8.6k 条)几乎都局限于'草图+拉伸'这一狭窄操作词汇,无法表达真实机械零件中常见的倒角、圆角、布尔运算、抽壳、扫掠、阵列等核心特征。CC3D-Ops 虽提供操作标签但不是可重放程序,CAD-Recode 虽生成百万级代码却是坐标链式的硬编码转译,缺乏语义参数。更糟的是,专业 CAD 历史数据被闭源格式与内核兼容性壁垒(Heidari & Iosifidis 2024; Lin et al. 2025)锁死。因此业界同时缺少大规模、可执行、可读、可编辑且操作多样的 CAD 序列语料。

本文的目标是本文目标是构建一个完全无需真实 CAD 历史数据的合成框架 Zero-to-CAD,用 LLM 智能体闭环地自动产出约一百万条可执行、可读、可编辑的 CadQuery 构造序列,覆盖真实机械零件所需的丰富操作(倒角、圆角、布尔、抽壳、扫掠、阵列等);同时配套发布一个按几何多样性精选的 10 万条子集、可直接预训练的下游视觉语言模型以及完整推理代码,使社区能在没有真实数据的前提下训练 CAD 序列生成模型,并通过图像到代码的下游任务验证合成数据的可用性。

与已有工作不同的是,已有工作的盲区在于把 CAD 数据获取当作'采集'问题,本文则把它重新框定为'智能体搜索'问题:用 gpt-oss-120b 作为在 CadQuery 环境内具备工具访问(执行验证、TF-IDF 文档检索、正则查询)的智能体,通过提示变分与 API 感知校验在广阔的机械零件空间里采样,并强制要求'可读+可编辑'(命名参数、对称性、可制造特征),从而在操作多样性、代码可读性、规模三个维度上同时超越 DeepCAD/Fusion 360 Gallery(量小且词汇窄)与 CAD-Recode(量大但缺乏语义结构)。

核心方法

直觉上,与其寻找稀缺的'带历史的 CAD 文件',不如利用 LLM 已从文本中学到的机械设计常识('支架需要安装孔'、'轴需要键槽'),让模型在反馈闭环里把这些先验翻译成可执行的 CadQuery 代码。技术路线上,系统部署 gpt-oss-120b 于 vLLM/Ray 集群,由中央协调节点调度数千条独立 rollout,每条 rollout 在隔离子进程里执行代码,并通过三类工具(execute_and_validate、lookup_documentation、grep_documentation)进行自纠。整个流程分为两阶段:先由 LLM 充当'机械零件图书管理员'为 65 个类别批量生成无尺寸描述,再为每条描述配套 19 条设计原则系统提示与可选参考代码片段生成可执行程序;多轮迭代修复循环最多支持 10 回合/100 次尝试,并配合三级验证(代码执行、几何有效性、STL+STEP 导出)筛选合格样本,最终通过 DINOv3 嵌入 + k-means 聚类挑出 10 万条多样性代表。

与传统单次 LLM 生成代码或固定规则合成(如 CAD-Recode 用程序化模板转译)不同,Zero-to-CAD 的本质创新在于把'描述决策'与'代码实现'解耦的两阶段流水线:阶段一让 LLM 在大上下文里批量产出 200 条差异化描述充当'机械图书管理员',阶段二再为每条描述在智能体循环里写代码,从而既保证类内多样性又控制几何有效性。同时明确禁止模型'通过删特征修 bug'——必须查文档维持原本设计复杂度——这避免了合成退化为简单体。最后通过 DINOv3 嵌入 + k-means 选样把百万条数据压缩到 10 万条多样化代表,并提供预计算嵌入与 FAISS 索引以支持后续检索。

方法步骤详情

流水线由四组件协同:(1) LLM 服务把 gpt-oss-120b 部署在 vLLM+Ray 上,暴露 OpenAI 兼容 API 与函数调用支持多轮会话与水平扩展;(2) 协调节点负责负载均衡、容错与产物流式写入;(3) Worker 提供三个工具——execute_and_validate 在隔离子进程执行代码并做拓扑/连通/面数/体积检查与 STL+STEP 导出,lookup_documentation 用 TF-IDF 检索 CadQuery 文档,grep_documentation 做正则定位;(4) 存储后端接收成功序列。两阶段协议:Stage 1 系统提示扮演'机械零件图书管理员'在 65 类别下批量产出无尺寸描述并去重;Stage 2 为每条描述注入 19 条设计原则与参考代码,在智能体循环中按'推理→写代码→执行→失败查文档→修正'迭代最多 10 轮/100 次;通过代码执行、几何(拓扑有效、单连通、≥7 B-Rep 面、正体积)、STL+STEP 导出三级验证入库;最后用 DINOv3 多视图嵌入 + k-means 中心点选 10 万条多样子集。

技术新颖性

技术新颖性体现在三方面:第一,把 CAD 数据稀缺问题重构为'智能体搜索+反馈闭环'问题,利用 LLM 关于机械零件的语义先验替代不可获取的真实历史数据;第二,两阶段'描述-代码'解耦配合 19 条设计原则的提示工程在保证操作多样性的同时维持几何有效性,22.3% 一次成功率背后 77.7% 通过平均 3.3 次迭代修复,平均每条对话 4.34 次函数调用、375K 次文档检索调用说明系统真正把'查文档'当作纠错手段;第三,'禁止用简化换通过'的设计哲学让最终 999,633 条序列都保留丰富的命名参数与构造步骤(如 Figure 11 中 plate_thickness、fillet_radius 等命名变量和'基板→筋→减槽→倒角'的工程逻辑),显著优于 CAD-Recode 的坐标链式代码。

Example of an agentic code synthesis rollout.
Figure 2: Example of an agentic code synthesis rollout.
Image-to-Sequence task overview.
Figure 4: Image-to-Sequence task overview.

实验结果

实验从数据集质量与下游任务两方面验证。规模保留 999,633 条可执行序列,消耗 60.2B 输入 token、生成 5.59B token,平均每条 5,638 token,22.3% 一次成功、3.30 次平均尝试。质量对比(Table 3):Zero-to-CAD 平均面数 46.2(接近 ABC 50.7),远高于 CAD-Recode 的 16.4;0% 部件低于 7 面且 0% 不连通(CAD-Recode 12.9%/56.3%);与 ABC 的 Fréchet 距离 0.164 vs 0.268、k=5 覆盖率 57.2% vs 45.3%。下游图像到序列(Table 4):测试集微调 Qwen3-VL-2B 取得 82.1% 成功率、IoU 0.747(中位 0.847、P90 0.999),远优于 GPT-5.2 High/Medium(约 72%、IoU ≈ 0.49)与基座 Qwen(6.6%、0.184);ABC 跨分布集微调模型达 61.0%、IoU 0.377,IoU 各分位全面超过 GPT-5.2,证明合成数据能从零引导出真实 CAD 重建。

Comparison of CAD datasets that provide construction-sequence information.
Table 1: Comparison of CAD datasets that provide construction-sequence information.
Summary of million-scale dataset synthesis.
Table 2: Summary of million-scale dataset synthesis.
Geometric quality and distributional alignment.
Table 3: Geometric quality and distributional alignment.
Image-to-Sequence reconstruction results.
Table 4: Image-to-Sequence reconstruction results.
Fine-tuning configuration for Qwen3-VL-2B-Instruct on Zero-to-CAD.
Table 5: Fine-tuning configuration for Qwen3-VL-2B-Instruct on Zero-to-CAD.
Zero-to-CAD uses an LLM with tool access to generate approximately one million executable CAD construction sequences with interpretable parameters.
Figure 1: Zero-to-CAD uses an LLM with tool access to generate approximately one million executable CAD construction sequences with interpretable parameters.
Qualitative comparison of Image-to-Sequence reconstruction on selected ABC samples.
Figure 5: Qualitative comparison of Image-to-Sequence reconstruction on selected ABC samples.
Visual comparison of dataset samples from Zero-to-CAD, ABC, DeepCAD, and CAD-Recode.
Figure 6: Visual comparison of dataset samples from Zero-to-CAD, ABC, DeepCAD, and CAD-Recode.
Generation statistics: validation attempts before success, function calls per conversation, generated tokens per design, face counts, and CAD operation coverage.
Figure 7: Generation statistics: validation attempts before success, function calls per conversation, generated tokens per design, face counts, and CAD operation coverage.
Complete CadQuery code for the mounting plate shown in Figure 2.
Figure 11: Complete CadQuery code for the mounting plate shown in Figure 2.
查看结构化数据
任务指标本文基线提升
图像到 CadQuery 序列重建(Zero-to-CAD 测试集) 成功率 / 平均 IoU Qwen3-VL-2B 微调:82.1% / 0.747(中位 0.847,P90 0.999) GPT-5.2 High:72.2% / 0.485;GPT-5.2 Medium:71.1% / 0.495;Qwen3-VL-2B 基座:6.6% / 0.184 相对 GPT-5.2 High 成功率 +9.9pp、平均 IoU +0.262;相对基座 Qwen 成功率绝对提升 75.5pp、IoU 提升约 4 倍
图像到序列重建(ABC 跨分布) 成功率 / 平均 IoU Qwen3-VL-2B 微调:61.0% / 0.377(中位 0.303,P90 0.854) GPT-5.2 High:66.2% / 0.344;GPT-5.2 Medium:62.6% / 0.346;Qwen3-VL-2B 基座:5.4% / 0.131 平均 IoU 比 GPT-5.2 High 高 0.033,且 IoU 四分位(mean/median/P75/P90)全面胜出;成功率略低 5.2pp 但几何保真度更优
几何质量(与 ABC 分布对齐) Fréchet 距离 ↓ / k=5 覆盖率 ↑ / 平均面数 0.164 / 57.2% / 46.2 CAD-Recode:0.268 / 45.3% / 16.4(ABC 50.7 作参考) Fréchet 距离降低 38.8%,k=5 覆盖率提升 11.9pp,平均面数与真实 ABC 更接近(46.2 vs 50.7)
数据有效性筛选 低于 7 面部件占比 / 不连通多体占比 0% / 0% CAD-Recode:12.9% / 56.3% 通过构造保证完全消除两类结构性失败模式

局限与改进

作者承认的局限主要在三方面:(1) LLM 在合成时仅有文本反馈,没有空间/视觉自检能力,因此 Figure 3 显示常见失败模式包括薄壁破坏连通性、孔位错放、自相交、尺度漂移以及局部合理但全局不连贯的原始体拼接;(2) 框架不强制设计可制造性 (DFM) 规则,因为 CNC、铸造、增材各自约束不同且需要材料假设,难以在百万规模上做每零件校验;(3) 跨分布到 ABC 时模型从合成到真实仍存在性能下降(IoU 从 0.747 降至 0.377),合成-真实差距未完全弥合。我观察到的额外局限:所有生成代码都基于 CadQuery 这一 Python 库,与 Fusion 360、SolidWorks、NX 等主流商业内核生态割裂,限制了数据集在工业流水线的即插即用;gpt-oss-120b 作为生成器引入了对该模型的隐式依赖,社区若想复现需重部署整套 vLLM/Ray 栈;一次成功率仅 22.3% 意味着 77.7% 需要多轮修复,百万级合成消耗 60.2B token 的算力门槛对中小团队仍较高。

独立分析的弱点

独立分析下有三个可改进点:(1) 描述阶段由 LLM 自主生成易出现'近义重复'与'伪多样性',尽管系统提示鼓励批内去重,但缺乏显式的语义去重度量,可以引入 Sentence-BERT 或 LLM 嵌入相似度过滤;(2) 几何验证仅做拓扑、连通、面数、体积、导出五项硬性检查,未必能捕获刀轨不可达、深腔无法加工等真实可制造性问题,可以接入开源可制造性分析(如 PyVista 配合 STL 切片刀轨仿真)做软约束;(3) 微调阶段仅以 IoU/Chamfer 作为评价,但 CAD 实际更看重操作序列的工程语义忠实度——生成代码可能几何相似但用了完全不同的构造步骤,建议增加'操作相似度'指标(如编辑距离在操作 token 上的归一化)。每个方向都能在现有管线里以增量改动方式引入。

未来方向

作者提出未来要拓展合成到真实 CAD 的差距与可制造性约束。结合论文成果可延伸的研究方向包括:(1) 引入视觉反馈让 LLM 在迭代中看到渲染结果以缓解 Figure 3 中的空间不自洽失败,作者已做初步试验但当前模型判别能力不足,需要更强的多模态推理模型;(2) 把相同智能体框架迁移到其他 CAD 内核(如 OCCT 直接生成 C++/Python 操作序列,或建模 FreeCAD 的脚本接口),从而打破 CadQuery 单一生态锁定;(3) 探索与直接 B-Rep 生成方法(BRepGen、AutoBrep、BrepGPT)的互补范式,用序列数据做条件生成的反向通道:给定 B-Rep 反推构造历史;(4) 把百万序列用于 CAD-Llama/FlexCAD 等已有 LLM 训练管线,研究合成监督对真实任务的下游迁移效率;(5) 拓展到装配体(多零件配合)场景,进一步逼近真实工程。

复现评估

复现友好度较高:作者明确在 HuggingFace 公开了完整数据集(999,633 条全集 + 10 万精选子集 + 预计算 DINOv3 嵌入 + FAISS 索引)、微调后的 Qwen3-VL-2B-Instruct 权重、系统提示与推理代码(huggingface.co/collections/ADSKAILab/zero-to-cad),附录还给出提示词全文与示例代码(Figure 8–11)。训练细节(Table 5)完全公开:16 块 H100 80GB、AdamW、$\eta = 1\times 10^{-4}$、cosine 调度、warmup 0.03、bf16、3 epoch。生成算力方面,论文使用弹性 2–80 块 GPU + 高峰 3,000 CPU 核处理 60.2B 输入 token,规模门槛对一般实验室较高;论文虽未开源编排代码(vLLM/Ray 配置、工具协议),但描述足够清晰,由熟悉 LLM 服务化的工程师可在 1–2 周内复刻核心流水线。算法上无新神经网络架构,主要是系统与提示工程,工程实现难度 ★★★★。