StepCAD: 基于 LLM 策略与几何引导搜索的 Mesh-to-CAD 代码生成
从 3D mesh 中恢复可执行的 CAD 程序具有挑战性:CAD 构造具有组合性,且离散的建模选择与连续参数之间相互耦合。许多基于学习的方法单次预测完整程序,并主要依赖 sketch-extrude 表示,这既限制了操作多样性,也减少了重建过程中修正几何误差的机会。 我们提出 StepCAD,一种将状态条件化的 CAD 策略与几何引导搜索相结合的生成式优化方法。给定输入 mesh,该策略同时以目标几何与中间几何为条件预测构造动作,再用 IoU 引导的树搜索 通过局部编辑精化所得程序。我们还发布了 ARCADE-1.5M,一个包含 150 万条可执行 CAD 程序的大规模数据集,覆盖多样操作、长度超过 150 个计数操作的序列,以及 1250 万条中间状态-动作转移。 在多个 CAD 重建基准上,StepCAD 取得了当前最优的几何重建精度,并始终保持高有效率,相较最强基线实现最高 87.2% 的相对 IoU 提升,在复杂形状上增益尤为显著。项目主页:https://ghadinehme.com/stepcad.github.io/
论文精读
TL;DR StepCAD 结合 LLM 策略与几何引导搜索,将 3D 网格重建为可执行 CAD 程序,在多个基准上取得最优精度,相对 IoU 提升最高 87.2%。
问题
问题背景
从 3D 网格恢复可执行 CAD 程序是逆向工程与设计复用中的核心任务。与输出静态几何(如点云、网格)不同,CAD 程序保留了参数化建模历史,可编辑、可仿真,在工业设计流程中价值更高。
现有方法局限
现有学习式方法多为单次前向预测:输入 mesh,直接输出完整 CAD 程序序列。这类方法有三点不足:
- 表示单一:普遍依赖 sketch-extrude 表示,操作类型覆盖有限,难以表达圆角、倒角、扫掠等复杂建模操作。
- 无迭代修正:一步生成后无法根据几何误差修正中间决策,错误会沿序列累积。
- 策略不感知中间状态:模型未充分利用构建过程中的中间几何状态,导致长序列生成时误差快速放大。
为什么难与重要
CAD 重建的难点在于组合性:离散建模选择(操作类型、草图约束)与连续参数(尺寸、位置)交错,搜索空间极大。给定目标网格,可能存在多种等价程序,但多数程序几何上不等价,因此需要同时保证可执行性与几何精度。业界关注度来自直接应用:可执行 CAD 程序能驱动参数化修改、仿真优化与制造准备,相比固定网格重建有更高工程价值。
行业类比
类比为:从渲染图像恢复 Figma 或 Sketch 源文件,而不是仅仅得到一张位图——源文件才支持后续编辑与版本迭代。
核心洞察
- CAD 重建从单步回归转向迭代优化:现有方法一次性输出完整程序,无法在生成过程中修正几何误差,而 StepCAD 将重建视为一个生成式优化问题,利用状态条件策略在每一步考虑目标与中间几何,并通过 IoU 引导的树搜索进行局部编辑。这种机制使得模型能够在离散建模决策与连续参数之间动态调整,显著提升复杂形状的重建精度,相对 IoU 提升最高达 87.2%。
- 操作表示多样性是突破瓶颈的关键:以往工作大多依赖 sketch-extrude 单一表示,限制了可表达的形状范围;StepCAD 引入 ARCADE-1.5M 数据集,包含 150 万条可执行 CAD 程序,覆盖多样操作类型和最长 150+ 步的构造序列,以及 1250 万条中间状态-动作转换。这使得模型能够学习更丰富的 CAD 构造逻辑,尤其对复杂几何结构有更强的泛化能力。
- 将 LLM 策略与几何引导搜索相结合,平衡了离散决策与连续优化:StepCAD 利用 LLM 生成候选动作,同时用 IoU 作为几何反馈信号驱动树搜索,这种混合方式避免了纯学习方法的盲目生成,也弥补了传统优化方法在离散操作空间中的搜索困难,为 mesh-to-CAD 任务提供了一种更鲁棒的工程范式。
方法
输入与表示
输入为 3D 网格(mesh),目标输出是可执行的 CAD 程序(代码序列)。程序由多种建模操作组成,不局限于 sketch-extrude,操作序列长度可达 150+。
状态条件 CAD 策略
核心是一个基于 LLM 的策略网络,在每一步根据目标几何与当前中间几何来预测下一步构建动作(离散操作类型 + 连续参数)。这种状态条件设计让策略能感知已构建部分与目标形状的差距,从而生成更合理的后续操作。
几何引导的树搜索
单次前向预测容易积累几何误差,因此引入 IoU 引导的树搜索。给定当前程序,搜索通过局部编辑(local edits)生成候选修改,以重建网格与目标网格的 IoU 作为启发式评分,在树结构中展开探索,保留高 IoU 分支,逐步精化程序。该过程可迭代进行,直到达到预设预算或 IoU 收敛。
输出与训练数据
最终输出为可执行 CAD 程序,兼顾几何精度与程序有效性。方法使用 ARCADE-1.5M 数据集训练,包含 1.5M 个可执行程序与 12.5M 条状态-动作转换,覆盖多样操作类型和长序列。
与同类方法的差异
与单次预测完整程序、且主要依赖 sketch-extrude 表示的既有工作不同,StepCAD 将策略预测与几何引导搜索解耦,通过局部编辑机制持续修正几何误差,在复杂形状上获得显著更高的重建精度和有效性。
实验
实验设计
StepCAD 在多个 CAD 重建基准 上评估,训练数据来自其提出的 ARCADE-1.5M 数据集:包含 1.5M 可执行 CAD 程序、12.5M 中间状态-动作转换,序列最长 150+ 操作,覆盖多种建模操作。方法将 LLM 策略(以目标和中间几何为条件)与 IoU 引导树搜索 结合,从输入 mesh 迭代生成并局部编辑 CAD 代码。评估指标为几何重建 IoU 与程序有效性。
关键发现
- StepCAD 在所有基准上取得 SOTA 几何重建精度,相对最强基线 IoU 提升 87.2%。
- 对复杂形状的提升尤为显著,说明搜索与多操作表示有效缓解了长序列组合爆炸。
- 生成程序保持高有效性,避免不可执行输出。
与基线对比解读
典型基线采用单遍预测、依赖 sketch-extrude 表示,限制了操作多样性与纠错能力。StepCAD 的核心差异在于:
- 策略模型观察中间几何,可感知当前构造状态并决定下一步操作;
- 树搜索通过局部编辑优化程序,将离散操作选择与连续参数调整分离,逐次逼近目标几何;
- 相比单遍方法,搜索结果可在推理阶段动态修正错误,而非一次性输出完整程序。
这一设计将 mesh-to-CAD 从回归问题转化为生成式优化问题,更贴合 CAD 构造的组合本质。
行业影响
落地场景
StepCAD 可嵌入 CAD 软件、逆向工程工具 与 3D 资产管线,核心场景包括:从 3D 扫描或网格生成参数化 CAD 程序,用于工业零件逆向设计、建筑信息模型重建、游戏资产可编辑化。电商平台可利用其将用户上传的 3D 模型转化为可定制 CAD 文件,支持个性化商品设计。
商业价值
直接降低几何重建的人工成本:传统逆向工程需熟练 CAD 工程师数小时手工建模,StepCAD 自动生成结构化程序,大幅缩短周期。其高几何精度与程序有效性减少后续修复工作,对 SaaS 工具而言,可提升产品差异化,按调用计费或作为高级订阅功能增收。
与现有产品 / 工作流的接口
以 API / 插件 形式接入现有建模软件(如 Fusion 360、Blender)或云端 CAD 平台。输入为三角网格(STL / OBJ),输出为 Python / OpenSCAD 风格的可执行代码或与主流 CAD 内核兼容的特征树。需处理中间几何状态的存储与渲染,适合部署在 GPU 推理服务上,前端提供交互式几何对比界面。
具体落地用例
- 电商定制:用户上传实物照片生成网格,平台用 StepCAD 重建可编辑 CAD 模型,自动适配尺寸修改、材质替换,缩短定制商品交付周期。
- 自动驾驶仿真:从激光雷达扫描的道路设施网格生成参数化 CAD 资产,利于批量生成不同尺寸 / 角度的路障、交通标志,提升仿真场景多样性与物理一致性。
局限
- StepCAD 依赖 IoU 引导的树搜索进行局部编辑,虽然提高了重建精度,但每次推理都需要多次模拟和几何评估,计算开销远高于单次预测的基线。摘要未报告推理时间或搜索步数,对于需要快速响应的场景(如交互式建模辅助)可能不适用。此外,树搜索的超参数(搜索宽度、深度)需仔细调节,可能影响性能稳定性。
- ARCADE-1.5M 是从程序化生成的 CAD 程序构建的,其网格通常完美、水密且无噪声。然而真实世界扫描或从 CAD 导出的网格常包含孔洞、非流形边和噪声点,模型可能无法有效泛化。摘要的实验仅在标准 benchmark 上验证,缺少对真实扫描数据的评估,域差距是潜在风险。
- 虽然 ARCADE-1.5M 声称支持多样操作,但常见 CAD 重建数据集往往以 sketch-extrude 为主,StepCAD 是否真正突破这一限制尚不清楚。摘要提到“diverse operations”,但未给出具体操作类型分布,如果数据集仍然偏向少数操作,则对包含高级特征(如倒角、圆角、扫掠)的复杂零件,模型可能仍然束手无策。与专门处理这些操作的方法相比,优势不明。