Procedura: Agentic 3D Modeling with Procedural Control

  • 关联论文:2608.26238
  • 作者:Tom
  • 更新:2026-08-28

一句话结论

提出 Procedura:将 3D 建模任务转化为 LLM 编写 parametric program 的过程,通过 procedural assembly(装配图 + typed mates + 机器可验证的连接检查)生成可编辑、part-level 结构化的 3D 程序,输出不是静态 mesh,而是可继续编辑的代码。

解决什么真问题

现有 Native 3D 生成器(Mesh extraction from image)能从不纯图恢复惊艳的 mesh 几何,但存在三个根本性局限:

  1. Sharpness 问题:机械零件该锋利的地方依然软塌(dense mesh 无 SDF 锐利边界)
  2. 无 part decomposition:整块 mesh 无法拆解为可独立操作的零件
  3. 无参数可编辑性:用户无法通过参数调整模型的局部特征

核心矛盾:生成的是静态 mesh,而工程/制造场景需要的是可编辑的参数化结构。3D 模型应当是一个程序,而非一张图。

核心方法

范式核心:3D Shape as Code

将 3D shape 表示为 procedural assembly:一个 parametric program,其中: - 命名零件(named parts) - 零件间通过 typed, machine-checkable mates 连接 - 零件由 mated frames(配合框架)定位,而非 guessing

Procedura 工作流

Text Prompt
    ↓
Assembly Graph Planning(LLM 将目标规划为装配图)
    ↓
Per-part Program Writing(LLM 逐零件编写程序)
    ↓
Placement Solving from Mated Frames(零件放置从配合帧解出,而非猜测)
    ↓
Compile + Mate + Connectivity Checks(通过编译/配合/连通性三重检查才接受零件)
    ↓
Decoupled Vision Critic(解耦视觉批评器,每次诊断修复一个问题)
    ↓
Output: Editable, Part-Structured Parametric Program

关键技术细节

Assembly Graph:LLM 将对象规划为装配图,定义零件间的拓扑关系和空间约束。

Mated Frames:零件放置不靠猜测,而是从配合帧(mated frames)精确解出——每个配合定义了接口的 6DoF 约束。

三重检查机制: - Compile check:程序语法/类型检查 - Mate check:零件间接口是否匹配 - Connectivity check:装配连通性验证

Decoupled Vision Critic:视觉批评器解耦为独立模块,每次只诊断并修复一个问题(one diagnosed fix at a time)。

材料 + 关节验证:同一张装配图携带 per-part materials 和 simulator-validated articulation(仿真器验证的关节运动范围)。

关键公式(伪代码结构)

# Procedural Assembly Program Structure
class ProceduralAssembly:
    parts: List[Part]           # 命名零件列表
    mates: List[Mate]           # typed mates,机器可验证
    materials: Dict[Part, Material]
    articulations: Dict[Joint, SimValidatedMotion]

    def add_part(self, part: Part, from_mated_frame: Frame) -> bool:
        # 从配合帧解出放置,而非猜测
        placement = solve_from_mated_frame(from_mated_frame)
        if not (compile_check(part) and mate_check(part, mates) and connectivity_check(part)):
            return False
        self.parts.append(part)
        return True

    def vision_critic_refine(self, vision_feedback):
        # 解耦视觉批评:一次只修一个问题
        diagnosed_issue = diagnose(vision_feedback)
        apply_fix(diagnosed_issue)

关键实验与数据

评估基准: - P3D-Bench(assembly judge):Procedura 在 assembly judge 下评估 - MechBench-36:论文自建的硬表面(hard-surface)benchmark

对比基线: - SOTA native 3D generators - 所有 prior 3D-code agents

关键结果(⚠️ 数字原文未完整获取,以 abstract 摘要口径): - 在 P3D-Bench + MechBench-36 的 assembly judge 上均超过 SOTA native 3D generators - 在 judged quality 上超过所有 prior 3D-code agents - 产生最锋利的边缘(sharpest edges):超越所有评估方法 - 唯一输出为 editable, part-structured program 的方法

⚠️ 具体百分比/speedup 数字待核 PDF §X 主表。

亮点与局限

亮点: - 范式迁移:将 LLM 的代码能力(coding ability)扩展到 3D 建模,是"LLM as coder"范式的新领域 - 输出形式革新:不是生成 mesh,而是生成 parametric program → 输出天然可编辑、可复用 - 机器可验证:三重检查机制(compile/mate/connectivity)使零件放置有客观验证标准 - Part-level structure:唯一能输出结构化零件分解的方法

局限(⚠️ 原文未明确部分): - 零件数量/复杂度上限未讨论(大规模装配场景的扩展性存疑) - LLM 编写 3D parametric program 的 token 消耗和 planning horizon - Vision critic 的诊断频率和收敛性未量化 - 对非硬表面(有机形态)的适用性未覆盖

对工程落地的启发

  1. CAD/工程软件 AI 化:Procedura 的"3D as code"思路可以直接迁移到 CAD 软件(SolidWorks/Fusion360 等)的 AI 辅助设计场景
  2. Part-level 生成:制造业需要的不是完整 mesh,而是可加工、可组装的零件级结构——Procedura 首次解决了这个问题
  3. 程序化资产生成:游戏/影视资产管线中,procedural 程序化资产生成是成熟方向,Procedura 将 LLM 代码能力引入这个 pipeline
  4. Vision-Language-3D 协同:Decoupled vision critic 模式(LLM 负责 planning/code generation,专用 critic 负责视觉质量诊断)是多模型协作的工程参考

与同方向工作的关系

工作 核心方法 与 Procedura 的关系
3D Gaussian Splatting 点云优化 mesh 输出仍是静态 mesh,无结构化
DreamFusion (SDS) Score distillation Fuzzy proxy,无零件结构
LLM 3D Code Gen (3D-GPT 等) LLM 生成 3D 代码 无 Assembly Graph / Mate 检查机制
Traditional CAD Programs 参数化建模 需人工定义参数,Procedura 由 LLM 自动生成
MeshFormer Transformer mesh 生成 输出非 parametric program

适合谁读

  • 3D 生成 / Computer Graphics 研究者:理解"3D as code"新范式的技术细节和实验结果
  • 制造业 AI / CAD 开发者:Part-level structured 3D 生成在工程设计中的实际价值
  • Agent + Code 研究者:LLM coding ability 如何迁移到空间建模领域
  • 游戏/影视资产工程师:Procedural content generation 与 LLM 结合的工程路线参考
  • Robotics / 具身智能:零件级结构化 3D 输出对机器人抓取/装配任务的潜在价值

§0 自检栏
机制段:3 段(3D Shape as Code / Assembly Graph + Mated Frames / 三重检查 + Vision Critic)
工程段:2 段(parametric program 结构 / 工作流各阶段)
⚠️ 数字核验:1 处(实验结果为 abstract 摘要口径,具体数字待核 PDF)
私域五维 SUM:0
CJK 字数:约 1500(≤ 4000 ✅)