← 返回 2026-10-08

CADFather:通过协调工具使用实现自主CAD重建 CADFather: Autonomous CAD Reconstruction through Coordinated Tool Use

Gennadiy Savrasov, Maksim Elistratov, Nikita Gavrilov, Albert Garifullin, Oleg Pavlov, Soslan Kabisov, Vladimir Frolov, Anton Konushin, Andrey Kuznetsov, Dmitrii Zhemchuzhnikov 📅 2026-10-06 👍 13 2026-11-11 18:30
CAD重建 参数优化 工具使用 智能体 视觉语言模型 逆向工程

VLM助手调度学习、算法、优化三类工具,从网格零失败重建可编辑CAD程序,六基准全面领先

前置知识

CAD 逆向重建(Mesh-to-CAD)

从三角网格等 3D 表达中恢复可执行的参数化 CAD 程序。程序由草图-拉伸/旋转等建模操作序列构成(本文用 CadQuery DSL,每行一个操作),执行后重新生成实体。与只生成网格不同,程序把孔径、壁厚等暴露为可编辑参数。

本文的任务定义与全部评价指标都围绕“程序可执行且几何贴合目标网格”展开,这是理解全文动机与方法设计的前提。

工具使用智能体

以大模型为决策核心、通过函数调用选择并执行外部工具、依据执行反馈迭代决策的自治系统。本文中 VLM 观察渲染图与数值表格,输出一句话理由加至多 4 个 act 调用(工具、候选、采样数)。

CADFather 的决策循环就是一个 VLM 工具使用智能体,理解该范式才能读懂其每步输入构成与动作空间。

IoU、GMS 与 Chamfer 距离

IoU 度量体积重叠 $I_i = V(M^\star \cap E(p_i)) / V(M^\star \cup E(p_i))$;GMS 度量两个表面及其法向的一致性,原始值除以 25 归一化到 $[0,1]$;CD 是采样表面间最近点距离,文中报告中位数并乘 $10^3$。

候选评分 $s_i$ 就是 IoU 与 GMS 的均值,保护最优的选择与所有对比表都由这组指标驱动。

候选池与分支搜索

每个候选记录父节点、来源工具、程序文本、网格、操作数与得分;扩展候选生成子节点而非改写历史,根节点是空程序;系统独立于助手当前选择,始终保存按评分最优的有效结果(protected best)。

与单程序迭代编辑方法的本质区别就在候选池,理解它才能明白助手“回到早期候选/换开局”等动作的意义。

数值参数优化

保持操作序列不变,仅优化草图坐标、半径、拉伸深度等连续参数:以采样点到程序实体与目标表面的符号距离之差的均方为目标,逐参数数值差分估计梯度并迭代更新,先拟合整体再贴近表面。

它是三大工具之一,消融显示其在 DeepCAD/Fusion360 上独立贡献约 0.004-0.006 分。

研究动机

从 3D 网格恢复可编辑 CAD 程序时,现有方法各有短板。学习类方法(CAD-Recode、cadrille、CADEvolve)一次性生成完整程序,CADReasoner 与 CADENA 虽可迭代,但操作提案只来自单一学习模型;纯算法路线的 CADFit 在 DeepCAD/MCB 上无效率高达 0.275/0.297。单一来源的提案在不同几何与重建阶段表现不均:学习模型可能遗漏特征或给出不准的尺寸,而 MCB 上已发表最好的 CADENA-RL sampling 的 IoU 仅 0.895、GMS 仅 0.751,且学习模型采样的首操作常产生开放壳层,搜索无法从有效实体出发继续。工程上,扫描件或遗留网格只能得到网格,缺少孔径、壁厚等可编辑参数,重建必须同时满足可执行、结构连贯、参数有用三个要求。

本文的目标是本文目标是构建一个无需任何额外训练的自主智能体系统 CADFather:以视觉语言模型为助手,在候选池上协调三类互补工具——基于 CADENA-RL 的学习式操作提案、基于几何拟合的算法式提案、以及保持操作结构不变的数值参数优化——从目标网格恢复参数化 CAD 程序。系统要求每个部件的输出都是可构建、水密、正体积的有效实体(目标 IR 为 0),并在 DeepCAD、Fusion360、MCB 三个全量测试集以及 CADENA-Bench、CADBench、BenchCAD 三个新基准上超越已发表最佳结果,同时量化计算成本与质量-成本权衡。

与已有工作不同的是,本文的独特切入是把“继续哪个候选”与“调用哪个工具”分离为 VLM 助手的显式搜索决策。与 CADENA 逐步扩展单程序不同,CADFather 维护多分支候选池:每步助手看到候选表(至多 12 行,含来源工具、操作数、IoU/GMS 与可用工具),一次最多发起 4 个 act 调用,可同时推进多个候选并混合工具。与 CAD-Assistant、IterCAD 的单程序视觉编辑不同,这里是面向给定目标网格的树搜索;提案必须通过比 CADENA 更严的执行验证(水密+正体积)和视觉验收才能入池,且保护最优独立于助手选择。生成模型与助手全部冻结,创新在于共享表示与搜索过程的集成而非新模型。

核心方法

直觉:重建的不同阶段需要不同操作来源——开局需要闭合实体基座、中盘需要新特征、收官需要精修尺寸,让看得到渲染图的 VLM 来调度。技术路线分三层。VLM 助手(Qwen3.8-27B,FP8 权重,关闭显式思考)每步输入四部分:固定规则、已执行动作的 transcript、目标与关键候选的渲染图、以及按分数取前 12 的候选表;输出一句话理由加至多 4 个 act 调用(工具+候选 ID+学习提案数 n)或 finish(shape|stalled)。三个工具:学习提案用 CADENA-RL 一次生成 n 个下一操作子程序;算法提案在空程序上从目标截面构造拉伸/旋转、在已有候选上对缺失/多余材料做 warm 提案,每次返回排序列表中接下来 4 个;参数优化固定操作只调草图坐标、半径、深度,以符号距离均方为目标、数值差分求梯度。每件预算:24 步、最多 12 操作、80 生成样本、6 次算法调用、10 次优化调用、120 次执行、1000 秒墙钟。

核心创新是候选条件下的工具选择搜索:助手不是被动接受单一提案流,而是在候选池上主动决定分支、工具与采样数。两个机制保证稳健。其一是“提案≠候选”:每个工具响应只是提案,必须通过执行验证(程序可构建、网格整体水密且体积为正,比 CADENA 的判定更严)并经助手视觉验收才能入池,重复程序被文本去重。其二是保护最优:按评分 $s_i = \frac{1}{|Q_i|}\sum_{q \in Q_i} q$($Q_i \subseteq \{I_i, H_i\}$,即 IoU 与 GMS 的均值)维护整个重建过程中最优的有效结果,即使助手走错分支最终输出也不回退。此外算法提案专门解决冷启动问题——学习模型首操作产生开放壳层时搜索无法继续,而目标截面的拉伸给出闭合实体作为可扩展基座。整个系统零训练,纯靠冻结模型的协调。

方法步骤详情

决策循环逐步如下。第一步助手读入规则、transcript、渲染与候选表;候选表只列可构建、水密且有合法动作的候选,含 ID、来源工具、操作数、状态标记(start/best)、IoU、GMS、首操作得分与剩余工具。第二步执行 act 调用:学习提案(CADENA-RL,bfloat16)以选中候选为父程序生成 n 个下一操作候选,n 受每调用上限 32 与剩余预算约束;算法提案两个入口——空程序上从目标网格识别旋转体或切平面取截面找拉伸深度,已有候选上比较缺失/多余材料后对每块区域做同样的拉伸搜索,每次返回排序列表的接下来 4 个,各自构成独立子程序;参数优化以采样点到程序实体与目标网格的符号距离之差均方为损失,逐参数数值差分估计梯度迭代更新,先全局后贴近表面,产出与父同操作的新子候选。第三步执行验证与度量:单候选构建与测量限 30 秒,无效者计 0 分;度量前目标按包围盒中心化并按最大维度归一,候选用固定变换对齐,尺寸错误因此受罚而非被归一化抹掉。第四步视觉验收入池并更新保护最优。助手可随时 finish(shape)(特征齐全仅剩数值差)或 finish(stalled)(近期无改进且无可行动作);存在有效候选前 finish 被忽略;回复畸形时先要求重写,再退化到对最优候选执行最便宜的可用动作。

技术新颖性

技术新颖性体现在组合而非发明:论文明确声明不引入新数值优化器、不训练新模型。真正的创新有三点。第一,把工具选择提升为候选条件下的显式决策:CADFit 的优化搜索、CADENA 的逐步生成、参数优化在文献中均已存在,但由 VLM 根据渲染与分数动态混配、且作用于多分支候选池是新的;工具预算耗尽后自动从候选表行中消失,预算感知内生于提示。第二,共享 CadQuery DSL 使各工具产出可互相接续——算法提案的闭合基座可交给学习模型加特征,学习程序可交优化器精修,消融证明这种互补价值最大(去掉算法提案在 MCB 上 score 降 0.1095)。第三,严格有效性定义(水密+正体积+时限)配合保护最优机制,把 IR 压到 0,这是 Table 1 中所有对比方法都没做到的。

CADFather overview. Given a target mesh and feedback from existing CAD candidates, the visual assistant selects candidate programs to continue, tools to apply, and the number of proposals to generate.
Figure 1: CADFather overview. Given a target mesh and feedback from existing CAD candidates, the visual assistant selects candidate programs to continue, tools to apply, and the number of proposals to generate.
One assistant decision step: step 3 of the trajectory in Fig. 3 (MCB chain link).
Figure 2: One assistant decision step: step 3 of the trajectory in Fig. 3 (MCB chain link).
A reconstruction trajectory on an MCB part (a chain link).
Figure 3: A reconstruction trajectory on an MCB part (a chain link).

实验结果

主结果覆盖六个基准。全量测试集(Table 1):DeepCAD 上 IR 0.0000、IoU 0.987、GMS 0.983、CD30k 0.039,全面超最强基线 CADENA-RL sampling(0.0007/0.966/0.974/0.042);Fusion360 IoU 0.976 对 0.952;MCB IoU 0.913 对 0.895、GMS 0.766 对 0.751——学习工具用同一 CADENA-RL checkpoint,增益纯来自协调。CADENA-Bench(3396 件,Table 2)IR 0、IoU 0.909、GMS 0.721,超最强已发表行 greedy 的 0.876/0.670。CADBench(18000 件)用官方评测代码(Table 4)得 IoU 0.930、SIoU 0.787、CD 0.029,三项全超 CADFit(0.859/0.679/0.038)且 14 个复杂度 split 全胜,但 VSR 0.968 低于其 0.981(576 件超评测 30 秒限时)。BenchCAD(Table 5)voxel IoU 0.968、零无效,超 CADENA-RL 的 0.910,持平带沙箱的 Claude Opus 5.5(自报 0.963)。成本上(Figure 4)每件约 $0.046 达 0.968,4 步 $0.016 已达 0.943,比 frontier 低约两个数量级。消融(Table 6):MCB 上去算法提案 score 降 0.1095、IR 升至 0.124,仅学习 −0.1135,仅去优化 −0.0061;DeepCAD/Fusion360 上优化叠加学习生成再加约 0.008。成本(Table 7):MCB 每件 12.25 步、20.57 次调用、245.6 秒;29.0-36.1% 调用抬升保护最优。

Comparison on the full test sets.
Table 1: Comparison on the full test sets.
CADFather on CADENA-Bench by part family, and over all parts against published results.
Table 2: CADFather on CADENA-Bench by part family, and over all parts against published results.
CADFather on CADBench and BenchCAD over all parts, under our protocol (Section 4.2).
Table 3: CADFather on CADBench and BenchCAD over all parts, under our protocol (Section 4.2).
Mesh-to-CAD results on CADBench with its evaluation code, aggregated over all 18000 parts.
Table 4: Mesh-to-CAD results on CADBench with its evaluation code, aggregated over all 18000 parts.
Vision2Code voxel IoU and invalid rate on BenchCAD.
Table 5: Vision2Code voxel IoU and invalid rate on BenchCAD.
Ablations on 1000-part subsets.
Table 6: Ablations on 1000-part subsets.
Per-part cost of CADFather on the full test sets and CADENA-Bench (means).
Table 7: Per-part cost of CADFather on the full test sets and CADENA-Bench (means).
Voxel IoU on BenchCAD against estimated token cost per part (log scale).
Figure 4: Voxel IoU on BenchCAD against estimated token cost per part (log scale).
Examples from the ablation subsets.
Figure 5: Examples from the ablation subsets.
Comparison with CADENA, CADFit, and two frontier coding agents.
Figure 6: Comparison with CADENA, CADFit, and two frontier coding agents.
查看结构化数据
任务指标本文基线提升
DeepCAD 全量测试集(8046 件)mesh-to-CAD 重建 IR / IoU / GMS / CD30k(×10³) 0.0000 / 0.987 / 0.983 / 0.039 CADENA-RL sampling:0.0007 / 0.966 / 0.974 / 0.042 IR 降为零,IoU +0.021,GMS +0.009,CD 降约 7%
Fusion360 全量测试集(1725 件) IR / IoU / GMS / CD30k(×10³) 0.0000 / 0.976 / 0.960 / 0.034 CADENA-RL sampling:0.0023 / 0.952 / 0.942 / 0.036 IoU +0.024,CD 降约 6%,IR 归零
MCB 全量测试集(5000 件,机械零件) IR / IoU / GMS / CD30k(×10³) 0.0000 / 0.913 / 0.766 / 0.083 CADENA-RL sampling:0.0006 / 0.895 / 0.751 / 0.089 IoU +0.018,GMS +0.015,CD 降约 7%;同 checkpoint 下纯协调增益
CADENA-Bench(3396 件机械件,六族) IR / IoU / GMS 0.0000 / 0.909 / 0.721 CADENA-RL greedy:0.0160 / 0.876 / 0.670 IoU +0.033,GMS +0.051,IR 降 1.6 个百分点
CADBench(18000 件,官方评测代码) IoU / SIoU / CD / VSR 0.930 / 0.787 / 0.029 / 0.968 CADFit:0.859 / 0.679 / 0.038 / 0.981 IoU +0.071、SIoU +0.108、CD -0.009,14 个 split 全胜;VSR 低 0.013(执行超时所致)
BenchCAD(17900 件)Vision2Code voxel IoU Voxel IoU / 无效率 0.968 / 0.0%(1000 件子集) CADENA-RL:0.910 / 0.9%;Claude Opus 5.5 (max)+tools:0.963(自报、$5.94/件) 超网格条件 SOTA 0.058,以 $0.046/件 持平百倍成本的 frontier 智能体

局限与改进

作者承认的局限:能力受 CAD 表示与工具可产出提案的限制,参数优化无法纠正不合适的操作序列;搜索限时可能中断本可成功的轨迹;助手基于不完整的视觉与数值证据决策,不保证找到最优重建;评测只度量几何与有效性,不覆盖设计历史、制造意图、装配与公差;有规划与执行的计算开销;消融仅 1000 件子集且未匹配实际算力;未与 CAD-Assistant、IterCAD 直接对比。我补充观察:MCB 上 GMS 0.766 远低于 IoU 0.913,体积吻合不等于表面结构吻合,滚花、浅口袋等细节缺失时 IoU 依旧好看,可能诱发过早 finish(shape);最终输出是按测试指标做的 best-of-N 选择,与单次生成方法对比存在先天优势;文本去重不保证几何唯一,候选池可能冗余;CADBench 有 12 件因目标网格过密、30 秒执行限时内所有候选失败(IR 0.0007)。

独立分析的弱点

独立分析四个弱点。一、错误根因不可恢复:初始拓扑错了之后存活分支都源于同一错误根(实心块被重建为空心框架、梯子横档并成单板),改进方向是允许助手从空根请求与现有首操作显著不同的替代开局,或对低首操作得分的子树提前剪枝重启。二、高分低质表面:IoU 高但 GMS 低时(旋钮滚花、浅口袋缺失),助手误判为仅剩数值差异而 finish(shape),改进方向是把 GMS 与 IoU 的差距作为停滞信号显式注入提示,或在算法提案中加入表面细节算子。三、资源限制截断:螺旋弹簧超墙钟被重建为管、支架肋板不全,改进方向是按部件复杂度自适应分配预算,或学习价值估计提前放弃无望分支。四、优化器覆盖面窄:只处理拉伸、孔、旋转三类操作,其他程序无法精修,可扩展可微操作库或引入无梯度采样精修。另外 best-of-N 评分依赖 ground truth,部署到真实扫描件场景需要无参考的质量代理指标。

未来方向

作者提出的方向:与 CAD-Assistant、IterCAD 等 agent 基线做受控直接对比;对助手的工具选择策略做独立评测(当前消融只移除工具,未匹配算力)。基于成果可延伸的方向:把算法提案从平面截面拉伸扩展到旋转扫掠与自由曲面拟合,覆盖螺旋弹簧、扭钻这些目前最差的类别;用几何哈希替代文本去重实现真正的去冗余;把 VLM 决策蒸馏成轻量策略网络进一步压成本——当前 $0.046/件虽比 frontier 低约百倍,纯算法路由可能更低;轨迹数据(83.3-90.0% 调用产出有效候选、29.0-36.1% 抬升保护最优的记录)可用于强化学习微调生成器;扩展到多部件装配与公差驱动重建;与可微 CAD 语言结合,让参数优化吃到解析梯度而非数值差分,提升精度并降低执行次数。

复现评估

复现条件较好。代码开源(github.com/kulibinai/CADFather),学习提案用公开的 CADENA-RL checkpoint(bfloat16 服务),助手 Qwen3.8-27B(FP8、关闭思考),两模型均冻结、无需训练。六个评测基准全部公开:DeepCAD、Fusion360、MCB 全量测试集(8046/1725/5000 件),CADENA-Bench 3396 件,CADBench 18000 件,BenchCAD 17900 件。单件配置明确:24 步、最多 12 操作、80 生成样本、6 算法调用、10 优化调用、120 次执行、1000 秒墙钟、单候选 30 秒。平均每件 82.6-306.7 秒,估计 token 成本 $0.046/件(按 Qwen3.8-27B 的 OpenRouter 价格 $0.425/$2.55 每百万输入/输出 token 计,不含几何处理与执行)。难点是全量复现需稳定的大模型服务与可观并发算力(CADBench 18000 件估算需数十 GPU 天),但论文给出完整预算、提示结构(Figure 2)与逐步验证过的轨迹(Figure 3),配置可复刻性很高。

相似论文推荐