AI 画 3D 模型,只能看不能改?arXiv 2608.26238 把"模型"变成"程序"
- 关联论文:2608.26238(Procedura: Procedural Controlling for Agentic 3D Modeling)
你是不是也踩过这种坑 😐?
让 AI 帮你画一个 3D 模型——比如一把椅子、一个齿轮、一台机器人——AI 几秒钟甩出一个看起来还挺像样的 .glb / .obj 文件。你兴冲冲拖进 Blender 一看:怎么改都改不动。 想把椅子腿加长 2 厘米?不行。 想把齿轮换成金属材质?不行。 想让机械臂的关节动起来做仿真?更不行。 因为 AI 给你的不是"模型"——是一坨密密麻麻的网格,没有结构、没有参数、没有部件名字。 这就好比:你让厨师帮你做菜,他端上来一盘"已经打成糊的食材"——看着像菜,但你没法加调料、没法改火候、没法装盘。
这就是 2026 年 AI 生成 3D 资产的真实困境:能画,不能用。
arXiv 2608.26238(Procedura) 换了一种全新的思路:
它不直接画 3D,而是让 AI 把物体写成一段"程序"——程序里写清楚有哪些部件(椅子腿、椅背、扶手)、每个部件的尺寸参数、部件之间怎么配合(重合?平行?同心?)、关节怎么动——然后把这段程序编译成 3D 模型。 你得到的不只是一坨网格,而是一份带结构的、可编辑的、能跑的"装配蓝图"。
为什么这件事重要? 因为——设计师、工程师、机器人开发者每天都在和 3D 资产打交道,能改、能拆、能仿真的 3D 资产才是真资产。Procedura 是这个方向上第一个同时做到"高质量 + 可编辑 + 部件结构化 + 物理可动"的系统——而且在两个基准上都跑赢了所有对手。
0 · TL;DR(30 秒版)
Procedura 把"3D 形即代码"范式推到工程化高度——让 Agent 把物体写成"过程化装配体"(parametric program + 具名部件 + 类型化可机器校验的配合关系),按 mated frame(配合框架)一件件求解 placement,并通过 compile / mate / connectivity 三重检查才入库,再由解耦的 vision critic 按"诊断修一次"方式精修。在 P3D-Bench 与自建 MechBench-36 上同时超越原生 3D 生成器与所有 3D-code agent。
一句话工程含义:别再用"AI 出图 → 手动改 mesh"的老路了——让 AI 出"程序化的 3D 蓝图",设计师能改、机器人能仿真。
1 · 痛点:AI 生成 3D 模型的"两条老路"都不够好
1.1 「原生 3D 生成器」路线:能看不能改
Tripo、Hunyuan3D、Trellis 这些工具输出 mesh 或 Gaussian Splatting。
听着美——但实战发现:
- ✅ 几何质量高
- ❌ 没有部件结构(整只椅子一整块)
- ❌ 没有可编辑参数
- ❌ 该硬的地方是软的(边缘、棱、角被 AI"圆角化")
一句话:看着能看,用着用着崩溃。
1.2 「3D-code Agent」路线:能改但装错
另一条路是让大模型直接生成 Blender / OpenSCAD 代码——产物天生有结构、能编辑——但坑也深:
- ✅ 可编辑、可看到部件
- ❌ placement 经常猜错——部件浮空、重叠、比例失真
- ❌ 程序不一定能跑
一句话:能改,但改完零件飞在天上。
1.3 3D 资产的本质两难
- 视觉质量 → 上原生 3D → 改不动
- 可编辑 → 上 3D-code → 经常装错
- 结构化 + 可仿真 → 没现成方案 → 只能硬写 CAD
有没有第三条路? Procedura 给出答案。
2 · Procedura 怎么把 3D 模型变成"可编辑的程序"
2.1 核心洞察:3D 物体本来就可以被"编程"
一个机械零件(齿轮、椅子、机械臂)本质上就是一个"装配体"——由若干具名部件组成,部件之间有明确的配合关系(coincident 重合、parallel 平行、concentric 同心)。
这在工业 CAD 里早是常识(SolidWorks、Onshape 都这么建模),但 Procedura 是第一个用 LLM Agent 把这个工业范式端到端跑通的工作。
类比:原生 3D 像油画(能看不能改)、纯 3D-code 像硬写代码(能改但装错)、Procedura 像CAD 工程师用程序建模(能改 + 装对 + 三重检查)。
2.2 表示:parametric program + typed mates
每个物体是一个 parametric program,三件套:
- 具名部件:
seat、back、leg、armrest、bolt等 - 类型化配合关系(typed mates):
coincident/parallel/concentric等,机器可校验 - simulator-validated articulation:关节/可动部件经仿真器验证"真的能动"
产物天然可编辑 + 可拆解 + 可仿真——mesh 表示三样都做不到。
2.3 生成流程:plan → write → solve → check → refine
[ Text Prompt:做一把椅子 ]
↓
[ 规划部件拓扑 ] → [ 逐部件写代码 ] → [ 从配合框架推导新部件位置 ]
↓
[ 三重检查:能编译?配合成立?连通正确? ] ← 任一不过就拒收、重写
↓
[ 通过 → 入库 ] → [ 视觉模块"诊断修一次"精修 ]
三个关键机制:
- mated frame:新部件不是"放在世界坐标",而是"相对已放置的腿按同心 + 平行放顶部"——几何推导,不是 AI 瞎猜
- 三重检查:过"能编译 / 配合成立 / 连通正确"三关,任一不过就拒收重写
- 解耦 vision critic:先"诊断"再"修一次"——稳定又便宜
3 · Procedura vs 原生 3D vs 纯 3D-code:一张表看清差异
| 维度 | 原生 3D 生成 | 纯 3D-code Agent | Procedura |
|---|---|---|---|
| 几何视觉质量 | ✅ 高 | ⚠️ 中(常装错) | ✅ 高 |
| 可编辑性 | ❌ 网格无参数 | ✅ 代码可改 | ✅ 程序可改 |
| 部件结构 | ❌ 整块网格 | ⚠️ 看 LLM 表现 | ✅ 强制结构 |
| 锐利边(机加工感) | ⚠️ 易圆角化 | ⚠️ 看代码质量 | ✅ 程序控制 |
| 物理可动 / 关节仿真 | ❌ 不支持 | ⚠️ 需额外标注 | ✅ articulation 仿真验证 |
| 工程可控性 | ❌ | ⚠️ | ✅ 三重检查 + 解耦 critic |
| 唯一做到 editable + part-structured | ❌ | ❌ | ✅ |
4 · 关键数据:跑得有多快
- 双基准同时超 SOTA:P3D-Bench + 自建 MechBench-36(36 个机加工物体)
- MechBench-36 Sharpness:Procedura 185.2 vs 第二名 60.4——3.1× 领先,最锐利的边
- P3D-Bench assembly composite:Procedura 0.590(Top judge composite 0.828)
- 唯一性:唯一输出"editable + part-structured program"的方法
- 作者团队:8 人合作(Lin Youtian, Yang Yikang, Hu Zhanpeng, Zhou Mengqi, Zhang Feihu, Cao Xun, Liu Jiaheng, Yao Yao)
- 项目主页:https://spatiaos.github.io/projects/procedura/
⚠️ abstract 没明确:P3D-Bench 评分细则、baseline 名单、LLM backbone。
5 · 工程落地:怎么用、坑在哪
⚠️ 第一原则:Procedura 定位是 hard-surface 专用(椅子、齿轮、机械臂)——超出范围(人脸、动物、角色)会得到灾难性结果。
5.1 装配体 DSL:最大工程难点
parametric program + typed mates 没有现成工业 DSL 可直接用。
实操路径:
- JSON Schema 定义
mate类型——不要让 LLM 直接生成 OpenSCAD(语法太松散) - 写 validator 校验数学合法性
- 引入约束求解器(PyBullet / CoppeliaSim),不能只靠 LLM 猜
5.2 Vision Critic 独立化(生产部署关键)
1-fix-at-a-time 要求 critic 独立可重启——现成管线(ComfyUI / A1111)是端到端图结构,需重写 harness:
- ComfyUI:critic 写成 Custom Node
- Diffusers:
CriticPipelinewrapper,外层循环 - 生产级:critic 独立部署、RPC,加
max_iterations=5防死循环
坑:critic 用 vision LLM 判断"修好了"——可能不稳定,必须留人工抽检通道。
6 · 写在最后
🎯 团队负责人:2026 赛道已分——一边"原生 3D"走视觉质量,一边"程序化 3D(Procedura)"走工程可控。业务偏视觉展示 → 保留原生 3D;偏工程交互 → 立即立项研究 Procedura。
💡 设计师 / 工程师:未来一年你拿到的 3D 资产很可能不再是 .glb,而是 .py + .json——可编辑、可参数化、可仿真。
🔧 机器人 / 仿真从业者:Procedura 几乎为机械臂量身定做——直接借鉴。
三个标题变体
- 痛点反差型:AI 画的 3D 模型只能看不能改?这篇论文把"模型"变成了"程序"
- 数据钩子型:3D 模型生成终于"听得懂人话"了:8 人团队让 AI 写出会跑的 3D 蓝图
- 行业判断型:2026 年,3D 资产生成正在分岔成两条路——你应该选哪条?
📱 小红书风格卡片文案
🪑 你有没有过这种崩溃时刻:让 AI 帮你画一把椅子,模型画得还挺像,但你想把椅子腿加长 2 厘米——它说"做不到"。因为 AI 给你的不是模型,是一坨没结构、没参数的网格。
🚧 这就是 2026 年 AI 生成 3D 的真实困境:能看不能用。设计师想改改不了,工程师想仿真仿不了。原生 3D 生成器(Tripo / Hunyuan3D / Trellis)网格漂亮但拆不开;3D-code Agent 能写代码但零件经常装错。
💡 arXiv 2608.26238(Procedura)找到了第三条路:让 AI 把物体写成"装配蓝图程序"——明确写清楚有哪些部件、每部件的尺寸、部件之间怎么配合(重合?平行?同心?),再用三重检查保证程序能跑,最后用视觉模块做 1 次精修。
📐 它和所有现有方案都不一样:是唯一一个同时做到"高质量 + 可编辑 + 部件结构化 + 物理可动"的方法。在 MechBench-36 的锐利边指标上,比第二名强 3.1 倍(185.2 vs 60.4)。
⚠️ 但注意:Procedura 是 hard-surface(硬表面 / 工程件)专用——椅子、齿轮、机械臂这种。人脸、动物、植物、角色?不行,别用。
🌐 项目主页:https://spatiaos.github.io/projects/procedura/