CADFather:用视觉语言助手协调多工具,从网格自主重建参数化 CAD 程序
CADFather 是无需额外训练的 CAD 逆向重建智能体:Qwen3.8-27B 视觉语言助手查看渲染图,在学习型提案、算法型几何提案和参数优化之间调度,并保留最优有效结果。在 DeepCAD、Fusion360 和 MCB 完整测试集上无效率为零,平均 IoU 达 0.987、0.976 和 0.913,高于 CADENA-RL 采样版。
研究背景:从网格到可编辑的 CAD 程序
网格只描述形状,不记录建模步骤。一个扫描件或遗留网格模型,没有构造历史,工程师就无法直接修改孔径或壁厚。CADFather 要解决的正是这个逆向工程问题:给定目标网格,恢复一段可执行、结构合理、可编辑的参数化 CAD 程序。论文来自莫斯科国立大学、Innopolis 大学和 FusionBrain Lab,arXiv 编号 2610.09127,2026 年 10 月 6 日提交。作者已在 GitHub 开源代码(kulibinai/CADFather)。
现有方法各有所长,也各有短板。CAD-Recode、cadrille、CADEvolve 一次生成完整程序。CADReasoner 根据差异反馈修订整段程序。CADENA 每次只追加一个操作。CADFit 则用几何拟合加优化搜索。论文的核心观察是:没有任何单一的操作来源能在所有零件几何和所有重建阶段都表现最好。学习型模型能给出合理的操作,但可能漏掉特征或尺寸不准。算法型构造直接从目标几何推导操作。参数优化能微调现有程序的尺寸。于是问题变成:在每一步,该扩展哪个候选,该调用哪个工具。
核心架构:视觉语言助手加三类工具
CADFather 是一个无需额外训练的智能体。视觉语言助手是 FP8 权重、关闭显式思考的 Qwen3.8-27B。学习型操作生成器是 CADENA-RL 检查点,以 bfloat16 部署。两个模型都冻结。所有工具输出同一种表示,即 CADENA 的 CadQuery 领域特定语言,所以一个工具产生的候选可以被另一个工具继续扩展或精修。
三类工具分工明确。第一,学习型提案:对某个父程序,一次请求生成 n 个下一步操作候选,助手自己决定 n,单次上限 32。第二,算法型提案:不依赖学习模型,直接对目标网格做几何拟合。在空起点上,它先判断是否为旋转体,否则用平面切割目标,把每个截面当作草图,求出草图贴合目标表面的拉伸深度,并丢弃对重叠度贡献很小的拉伸。在已有候选上,它比较候选与目标,找出缺失材料和多余材料,缺失处生成拉伸,多余处生成切除,并给出排序列表,每次调用返回接下来的四个提案。第三,参数优化:只改数值,不改操作结构,自由参数包括草图坐标、半径和拉伸深度。
决策循环与候选池
系统为每个零件维护一个候选池。每个候选记录标识、父节点、来源工具、程序、网格、操作数、有效性和度量。扩展候选会生成子节点,不会改写历史,代码级去重避免重复条目。每一步,助手只看到一张有界表格:最多 12 个得分最高的候选,外加受保护的最优候选和空起点。表格给出每个候选的工具来源、操作数、IoU 与 GMS、首个操作的得分,以及还能用哪些工具。助手还看到目标与最新候选的渲染图。它用一句话说明意图,然后发出最多 4 个 act 调用,或调用 finish,原因为 shape(特征已齐全)或 stalled(已无进展)。
工具返回的只是提案。系统先构建并验证,再测量,最后由助手目视检查渲染结果,决定是否纳入候选池。有效性规则很严格:程序必须能构建,且整体网格必须是体积为正的水密实体。比较时目标与候选处于同一坐标系,候选不会被自己的包围盒重新缩放,所以尺寸错误会被扣分。得分是 IoU 与归一化 GMS 的平均值,无效候选记 0。最终输出是受保护的最优结果,而不是助手最后操作的那个候选。预算由固定上限保证终止:每零件 24 步、最多 12 个操作、1000 秒、80 个生成样本、6 次算法调用、10 次优化调用、120 次程序执行。
优化器的数学基础
参数优化器基于有符号距离。对空间中一点,取到实体表面的距离,内部为负。程序的距离由其操作直接计算,目标的距离由网格在采样点上计算。失配量是两种距离在采样点上的均方差。
梯度用数值差分估计:每个参数依次移动一个小步长,观察失配的变化。优化先拟合覆盖整个零件的点,再拟合靠近表面的点,并在初始、粗略和精细三组参数中选出表面附近最匹配的,所以程序也可能原样返回。它只支持拉伸、孔和旋转。作者明确表示没有提出新的数值优化器。
基准结果
在 DeepCAD、Fusion360 和 MCB 的完整测试集上(分别为 8046、1725 和 5000 个零件),CADFather 的无效率均为 0,平均 IoU 为 0.987、0.976 和 0.913,而 CADENA-RL 采样版为 0.966、0.952 和 0.895。GMS 为 0.983、0.960 和 0.766。在 30000 采样点下,Chamfer 距离中位数(乘以 10 的 3 次方)为 0.039、0.034 和 0.083,均低于 CADENA-RL 采样版的 0.042、0.036 和 0.089。论文强调学习型工具用的就是同一个 CADENA-RL 检查点,所以增益并非来自更强的生成器。需要注意:已发表的 CADENA 行使用较宽松的有效性规则,CADFather 的规则更严,两者的无效率不能直接比较。
在 CADENA-Bench(3396 个零件)上,CADFather 的 IoU 为 0.909,GMS 为 0.721,高于 CADENA-RL 贪心版的 0.876 和 0.670。在 CADBench 的官方评测代码下,18000 个零件上的 IoU 为 0.930,SIoU 为 0.787,CD 为 0.029,均优于 CADFit 的 0.859、0.679 和 0.038,但有效形状率 0.968 低于 CADFit 的 0.981,原因是 576 个零件超出评测器 30 秒限制。在 BenchCAD 上,体素 IoU 为 0.968,无效率为 0。
消融:算法型提案贡献最大
在每个数据集 1000 个零件的子集上,去掉算法型提案会使平均得分下降 0.012 至 0.110,MCB 上无效率从 0 升到 0.124。原因是有些零件上,学习型生成器采样出的所有首个操作都是开放曲面,搜索无法从非水密基础继续,而对目标截面做拉伸能给出封闭实体。
去掉优化器只让得分下降 0.004 至 0.006,无效率仍为 0。这说明在这套系统里,工具多样性主要解决的是鲁棒性问题,而不是精度的最后一点。作者也承认,消融没有隔离助手选择策略本身的贡献。
成本与延迟
每零件平均助手步数在 DeepCAD 上是 6.37,Fusion360 上 8.41,MCB 上 12.25,CADENA-Bench 上 13.04。对应的墙钟时间为 82.6、119.9、245.6 和 306.7 秒。生成样本数从 19.0 到 67.1 不等。助手自行结束的比例从 DeepCAD 的 86.1% 降到 CADENA-Bench 的 25.0%,说明复杂机械件常常是被预算截断的。
在 BenchCAD 上,按 Qwen3.8-27B 的 OpenRouter 价格估算(每百万输入 token 0.425 美元,输出 2.55 美元),四步后体素 IoU 为 0.943,成本约 0.016 美元每零件,满预算为 0.968,约 0.046 美元。论文引用的 Claude Opus 5.5 与 GPT-6 Astra 带工具版本报告 0.962 和 0.959,成本分别为 5.94 和 1.75 美元。这些前沿模型数字是厂商自报、输入和子集不同,作者自己也称之为"语境性比较"。成本估算只含模型 token,不含几何处理和执行。
对开发者与企业的意义
对制造业和工业软件团队,这类系统让遗留扫描件和无历史网格变成可参数化编辑的模型。它不需要训练专用大模型,只要组合已有的生成器、几何算法和通用视觉语言模型,因而可以在私有环境中用开源权重部署。
模块化设计也意味着任何一个工具都可以被替换:更强的生成器或更快的拟合算法可以直接接入。更广泛的启示是,在几何这类可验证的领域,智能体的价值在于路由和预算分配,而不在于单个模型的原始能力。
局限与未来方向
作者列出了几点局限。系统受限于 CAD 表示所支持的操作和工具能产生的提案:参数优化无法纠正错误的操作序列,保留早期候选也无助于从未生成过的方案。搜索上限可能截断本可成功的轨迹。助手依据不完整的视觉和数值证据做决定,结果可能依赖提示词和模型行为。典型失败包括初始拓扑错误(实心块被重建为空心框架)、体积匹配但表面细节缺失(滚花、浅槽),以及螺旋弹簧被重建为管子。评测只衡量几何重建和程序有效性,不衡量设计历史、制造意图和工程约束,也不涉及装配体、公差和仿真验证。与 CAD-Assistant、IterCAD 等其他 CAD 智能体的直接比较,以及对助手选择策略的受控评估,都留给未来工作。
还要看到一点:最终选择使用的是与报告指标相同的 IoU 与 GMS,这是一种按同一指标的最优选择。读者引用这些数字时应记住这一点。