Procedura: 基于程序化控制的智能体 3D 建模
原生 3D 生成器现在可以从单张图像恢复令人印象深刻的网格几何。然而,密集网格在机加工物体应该尖锐的地方仍然柔软,没有零件分解,也不暴露任何用户可编辑的参数。为解决这个问题,我们探索了“3D 形状即代码”的范式,利用并扩展大语言模型的编码能力进行 3D 建模。 我们引入了 Procedura,一个新颖的 3D 建模智能体框架,它把对象写成程序化装配体(procedural assembly),这是一个参数化程序,其命名部分通过类型化、可机器检查的配合(typed, machine-checkable mates)连接。从文本提示出发,智能体将对象规划为装配图,并逐部分编写程序,从配合框架中求解每个放置而非猜测,并且只有通过编译、配合和连通性检查后才接受一个部分。解耦的视觉评论器(vision critic)通过一次一个诊断修复来细化装配体。此外,同一个图携带每个部分的材质和经过模拟验证的关节(articulation)。 我们在 P3D-Bench 及其装配评判器下评估,并在我们的硬表面基准 MechBench-36 上用相同的评判器评估。在两者上,Procedura 在评判质量上优于最先进的原生 3D 生成器和所有先前的 3D 代码智能体,产生我们评估的任何方法中最锐利的边缘,并且是唯一输出可编辑、部分结构化工序的。
论文精读
TL;DR Procedura 将 3D 建模转化为编写参数化装配代码,由 LLM 规划装配图并逐件构建,通过类型化配合与视觉 critic 保证几何尖锐、可编辑且有部件结构,在两项基准上超越现有生成器。
问题
问题背景
生成式 3D 建模当前聚焦于从文本或图像直接恢复硬表面物体的网格几何,如机械零件、家具、工具等,这些对象要求锐利边缘、精确尺寸和可编辑的部件结构。
现有方法局限
原生 3D 生成器(native 3D generators)虽然能生成视觉逼真的网格,但输出是单一密集网格,存在三个关键缺陷:
- 几何边缘被平滑化,无法体现机械加工的锐利特征;
- 缺乏部件分解,无法区分或选择独立零件;
- 没有参数化表示,用户无法调整尺寸、位置或替换部件。
先前的 3D-code 代理 尝试用 LLM 生成代码构建形状,但普遍缺少类型化配合(typed mates)与编译/连接性检查,导致程序不稳定,经常出现穿插、错位或非流形几何。
为什么这个问题难且重要
将 3D 形状表示为程序需要同时解决三个技术挑战:
- 部件分解——自动识别形状由哪些独立零件组成;
- 装配约束——定义零件之间的精确相对位姿,而非猜测坐标;
- 几何验证——确保程序编译后生成合法、可制造的实体。
LLM 的代码生成能力为突破这些挑战提供了基础,但必须配合可执行的检查循环才能避免幻觉几何。业界对可编辑、参数化 CAD 模型的需求持续增长,因为下游仿真、制造和协作设计都要求形状具有结构化的部件信息。
行业类比
这与 AI 代码生成 从“生成单文件代码”到“生成包含模块化、类型检查、单元测试的工程化项目”的演进类似:3D 建模正在从“生成网格”走向“生成可维护的程序化装配”。
核心洞察
- Procedura 将 3D 建模定义为生成 procedural assembly 的程序合成任务:用 LLM 编写带命名零件和类型化 mates 的参数化程序,而非直接预测稠密网格。这从根本上解决了 native 3D 生成器输出软边缘、无部件分解、无参数可调的问题——程序化表示天然携带锐利几何和可编辑参数,并通过编译、配合、连通性检查保证结构正确。工程启示是:把领域知识编码为可执行的中间表示,能让通用 LLM 的代码能力迁移到高精度 3D 建模,避免端到端回归的模糊性。
- Mate-driven 构建与解耦视觉 critic 构成可验证的 agent 闭环:零件位姿从 mated frames 解析而非猜测,仅当编译、配合、连通性检查全部通过才纳入;随后视觉 critic 针对渲染结果给出诊断并单步修复。相比 prior 3D-code agent 仅生成代码而缺乏可执行验证,Procedura 的每个中间步骤都可被机器检查,空间推理错误可被定位和纠正。这展示了复杂生成任务中生成器与验证器解耦的重要性——用确定性约束保证可行性,用视觉反馈逐步逼近目标,而非依赖单一模型一次成功。
- Procedura 的统一 assembly graph 同时承载几何、per-part materials 与 simulator-validated articulation,使输出不仅是可渲染的网格,更是可仿真、可交互的部件结构。这与只输出 mesh 或点云的原生生成器形成本质差异,也优于仅生成代码但缺少物理语义的 3D-code agent。该设计让下游任务(如装配动画、物理模拟、用户编辑)直接消费第一部分分解和关节参数,无需后处理。工程启示:3D 生成应面向真实使用场景设计表示,将语义结构内建于数据格式,而不是事后从几何中推理。
方法
方法概述
Procedura 将 3D 建模视为编写程序:输入自然语言提示,通过冻结的 LLM 生成一个 程序化装配,即由命名部件通过类型化、机器可检验的配合(mates)连接而成的参数化程序。
关键模块
- 装配图规划 (Assembly-Graph Planning):LLM 首先将对象规划为装配图,定义部件节点和连接关系,替代端到端生成。
- 配合驱动构建 (Mate-Driven Building):逐个部件编写代码,从配合坐标系求解位姿而非随机猜测,保证刚体约束成立;每个部件经过编译、配合与连通性检查后才会被接受。
- 解耦视觉批评精炼 (Decoupled-Critic Refinement):独立的视觉 critic 根据渲染/几何诊断问题,逐步修复装配,避免联合优化中的模式崩溃。
- 材质与关节 (Materials & Articulation):同一装配图携带每部件材质;关节通过仿真验证,支持运动结构。
输出与差异
输出是可直接编辑、可参数修改的程序,自带部件分解。与先前 3D 代码代理或 Native 3D 生成器相比,Procedura 将编程能力与几何验证结合,生成硬表面模型有最锐利边缘,且是唯一输出可编辑、部件结构程序的方法。
实验
实验设计
Procedura 在 P3D-Bench 和自建 MechBench-36 上评估,统一使用 assembly judge 量化装配质量。对比对象包括 state-of-the-art native 3D generators 与先前的 3D-code agents。评估重点为 judged quality、边缘锐度、以及输出可编辑性。
关键发现
Procedura 在 judged quality 上超越所有基线,生成最锐利的边缘,并且是唯一输出可编辑、带部件结构的程序的方法。此外,装配图同时携带逐部件材质与经仿真验证的 articulation(关节运动)。
与基线对比解读
- Native 3D generators 恢复密集网格虽几何逼真,但缺乏锐利边缘、部件分解与可调参数。
- 先前 3D-code agents 未能同时满足 mate 约束、视觉反馈修正与连接检查。
- Procedura 通过 typed mates、compile/mate/connectivity 三重校验,以及解耦的 vision critic 逐步修正,避免了位置猜测,保证每个部件放置有据可依。
工程启示:将 3D 建模视为程序合成,由 LLM 规划装配图并逐部件编写,以约束求解替代端到端回归,在可编辑性、精度与可解释性之间取得平衡。该方法无需 3D 训练数据,仅依赖冻结 LLM,降低了数据与算力门槛。
行业影响
落地场景
- 机械/硬表面 CAD:Procedura 可直接生成参数化装配程序,适用于工业零件、机器人结构、消费电子产品外壳等需要精确配合与可编辑性的场景。
- 电商 3D 商品展示:例如家具或电子设备的可配置模型,用户可切换部件、颜色或尺寸,实时预览装配效果,提升线上购物体验。
- 游戏/影视资产:快速生成带部件分解的硬表面道具,减少手动建模与拓扑修复时间,便于后续动画绑定。
商业价值
- 降本:相比传统人工建模或 3D 扫描后修复,Procedura 将文本提示直接转化为可编译、可编辑的程序,大幅缩短从概念到可用资产的周期。
- 增收:程序化资产支持参数化变体生成,一套代码可派生多款产品,提高资产复用率;在电商定制场景中,实时交互式配置可提升转化率与客单价。
- 体验提升:输出自带部件命名、配合关系与材料信息,工程师可直接修改参数迭代设计,避免黑盒网格编辑的繁琐。
与现有工作流接口
- 格式对接:生成的程序可解析为 STEP/IGES 等 CAD 格式或通用网格,与 Blender、Fusion 360、Unreal Engine、Unity 等主流工具集成。
- 服务形态:可作为云端 API 嵌入设计工具或内容平台,接受文本或图像输入,返回结构化装配程序;也可通过插件形式在本地运行,利用 LLM 推理能力离线生成。
具体落地 use case:电商平台 的 3D 家具定制页面,用户输入“带抽屉的简约书桌,橡木材质”,Procedura 生成可拖拽调节尺寸、更换把手的装配模型,后端仅保存参数而非网格,极大降低存储与传输成本;自动驾驶仿真 中快速生成带可动关节的传感器支架或路侧设备,用于场景库扩充与传感器布局验证。
局限
- **适用域偏窄**:论文方法主要针对机械硬表面对象(MechBench-36 与 P3D-Bench 均以工业零件、机械装配为主),依赖 `typed mates` 的装配关系与平面/圆柱面等规则几何特征。对于有机形状或自由曲面,mate 定义和求解可能失效,程序生成的成功率会明显下降。论文未展示在生物体、服装等软表面类别上的结果,跨域泛化能力存疑。
- **依赖 LLM 代码生成稳定性**:Procedura 用冻结 LLM 逐部分编写装配程序,但 LLM 对 3D 几何推理仍不稳定,可能产生语法错误或不合逻辑的 mate 组合。虽然加入了编译、mate、连通性检查,但失败重试和 vision critic 修正会显著增加推理耗时与 token 消耗。对于复杂装配体,单次生成可能需要多轮诊断与修复,工程落地时需权衡延迟与质量。
- **评估指标单一**:论文以“judged quality”为核心评价,但未明确给出该指标的具体定义与人类评判协议,可能掩盖几何精度、语义合理性等细节。另外,与 native 3D generators 的对比未提及生成时间、资源占用等工程指标;articulation 的仿真验证也仅在有限类别上演示,实际可动性可能受网格质量、碰撞处理影响。