跳转至

BANG

BANG: Dividing 3D Assets via Generative Exploded Dynamics

Overview

BANG 讨论的是更进一步的问题:能不能在生成过程中把物体拆成有语义的部件,并让这种拆分过程本身可控、连续、可回装。这使它更贴近真实 3D 建模、装配和制造流程。


核心问题

主流 3D 生成方法大多输出单一整体 mesh。

这会带来几个直接限制:

  • 不适合部件级编辑
  • 难以支持装配、打印、动画等下游流程
  • 对内部结构和部件关系缺少显式建模

BANG 不走静态 part segmentation 那条路,而是构造一个 exploded dynamics

  • t = 0 时是完整装配状态
  • t = 1 时是完全分离的 exploded view
  • 中间状态是一段连续、平滑的部件分离轨迹

如果模型能生成这段轨迹,它就会在生成里显式学习部件之间的空间关系、装配关系和可分离结构,不只是知道表面属于哪个 part。


整体结构

BANG 建立在预训练 3D latent diffusion 模型之上,再做轻量适配。

text input geometry + time t -> Exploded View Adapter -> frozen 3D latent diffusion backbone -> Temporal Attention -> exploded geometry sequence -> Part trajectory tracking -> controllable part-level asset

框架可以分成四步:

  1. 先预训练一个静态 3D 几何生成基础模型
  2. 再用 exploded-view adapter 学习“输入物体 + 时间 -> 爆炸状态”
  3. 用 temporal attention 保证多帧之间平滑过渡
  4. 用 SDF-based trajectory optimization 把部件轨迹重新对齐,支持回装与下游应用

1. 预训练基础模型

BANG 的底层 backbone 沿用 3DShape2VecSet / CLAY 这一类 latent diffusion 几何模型。

  • 输入 mesh 表面点云
  • VAE 编码成 L x C 的 latent tokens
  • DiT 在 latent 空间中去噪
  • decoder 输出 SDF,再提取 mesh

论文在 Objaverse 的约 500K 个 watertight 几何上预训练这个基础模型,并支持文本、图像、点云等条件输入。

这一点很关键:

  • BANG 不是从零学 part-level 几何
  • 它先继承大规模静态 3D 先验
  • 再只训练轻量模块去学习 exploded dynamics

这也是它数据需求相对可控的原因。


2. Generative Exploded Dynamics

Exploded View Adapter

给定输入几何 M 和时间 t,BANG 希望生成该时刻的 exploded mesh M_t

做法是:

  1. 从输入 mesh 均匀采样点云 S
  2. 用与 VAE encoder 类似的 cross-attention 编成几何条件 G
  3. 把时间 t 和预期 part 数一起注入一个轻量 transformer adapter
  4. 通过并行 cross-attention 把这个条件送入冻结的 DiT backbone

也就是说,BANG 的 exploded 能力通过给原有 3D foundation model 加一个“如何分解”的条件头获得,不需要改写整个生成器。

这一设计的好处是:

  • 训练参数少
  • 继承基础模型的几何先验
  • 适配不同输入物体比较灵活

Temporal Attention

单帧 exploded 还不够,BANG 需要整段平滑序列。

为此,论文在每个 DiT block 后加入轻量 temporal attention,让不同时间帧的 token 彼此通信:

  • 多帧序列一起送入模型
  • frame-wise time embedding 区分不同时间点
  • attention 在所有帧 token 上展开,建立跨帧一致性

训练时随机取 2-5 帧,推理时通常生成 5 帧:{0, 0.25, 0.5, 0.75, 1}

这使模型学到的是连续的部件分离过程,不是几个孤立状态。


3. 数据集构建

这篇论文的一个难点在于:公开 3D 数据并没有天然带“可爆炸分解序列”。

数据过滤

作者先从 Objaverse 挑出更适合 part-level 建模的资产:

  • part 数量在 2-30 之间
  • 顶点数不过少也不过大
  • 去掉扫描残缺、复杂场景、动画皮肤等不适合样本
  • 用 GPT-4 做多视角质量检查和属性标注

爆炸轨迹合成

保留下来的多部件 mesh,会进一步自动生成 exploded dynamics:

  • 先对每个 part 计算 axis-aligned bounding box
  • 再优化每个 part 的平移向量,让它们沿“向外炸开”的方向移动
  • 目标是在减少碰撞的同时,避免过大位移导致结构失真
  • t = 0 -> 1 做线性插值,采样中间状态

最终得到约 20K 个高质量 exploded dynamics 样本。

这个规模不算大,但因为基础几何先验来自大模型预训练,所以足够支持 adapter 微调。


4. 部件轨迹跟踪

只生成 exploded sequence 还不够,BANG 还想知道“这些 part 在回到装配状态时分别对应哪一块”。

论文因此设计了 SDF-based trajectory optimization

核心想法是:

  • t = 1 的 fully exploded state 上先做 connected component analysis,拿到各个 part
  • 假设每个 part 的运动是线性平移
  • 优化每个 part 的 translation vector,使其在不同时间点上与对应 SDF 场对齐

目标函数可写成沿时间和表面点的 SDF 查询误差最小化。

为了避免部件重叠区域给出错误梯度,论文还加入了一个额外处理:

  • 如果某些点已经落在别的 part 内部(负 SDF)
  • 这些点不参与优化
  • 只保留真正边界处的 frontier points 提供梯度

这样做的意义在于,BANG 不只是会“炸开”,还保留了一条可重建、可回装的部件轨迹。


5. 可控生成

空间提示:Bounding Box 与 Surface Region

BANG 支持两类空间控制:

  • Bounding box:指定某个体积区域该怎么拆
  • Surface region:指定表面上的局部区域进行更精细控制

实现方式是把这些空间提示编码成 token,再通过额外 transformer branch 送入 exploded view adapter。为了让多个提示可区分,论文还给不同 prompt 加了独立的位置编码。

这带来的效果是:

  • 可以只让木马的轮子分离
  • 可以把某些 body parts 合并成一个整体再一起分解
  • 可以控制未选中区域是否自动参与 explosion

相比“先整体生成再后处理切开”,这种控制更直接也更稳定。

2D 到 3D 的交互桥接

作者还进一步把 2D 交互接入到 3D part control 里。

方法是:

  1. 用几何 feature decoder 在 3D surface points 上提取特征
  2. 用 DINOv2 提取 2D 渲染图像中的区域特征
  3. 通过 feature alignment 建立 2D ROI 和 3D surface region 的对应

于是用户可以在 2D 图像上圈一个区域,再把它映射到 3D 物体上,控制哪些 part 被分离。

这比直接在 3D 里操作 box / region 更符合普通用户的交互习惯。


6. 典型应用

Per-part geometric detail enhancement

一个很实用的应用是:

  • 先把整体几何炸成多个 parts
  • 每个 part 单独缩放回标准空间,再重新生成 / 精修
  • 最后重新组装

这样做的原因是,整体生成时受归一化空间和分辨率限制,局部小零件往往不够细。拆成 part 后,每个局部都能占据更多表示容量,细节会明显提升。

Multi-modal structural understanding

BANG 还能和 GPT-4、Florence-2、SAM2、DINOv2 等模型结合,实现两种交互模式:

  • Exploded then Understanding:先自动拆,再给每个部件生成文字说明
  • Understanding then Explosion:用户先通过自然语言描述希望操作的部件,再指导 exploded generation

这使它不只是一个生成器,也在往“3D 结构理解 + 交互”方向延伸。

3D printing 与装配

因为 BANG 天然输出可分离的 parts,它很适合打印流程:

  • 每个部件单独打印,减少支撑和过悬问题
  • 各部件可选不同材料 / 颜色
  • 可加插接结构,方便装配

这比把一个整体 mesh 先打印再人工拆分更自然。


与其他工作的关系

相比 PartCrafter

  • PartCrafter 重点是端到端 part-aware mesh generation
  • BANG 更强调从完整物体到 exploded dynamics 的连续部件分解
  • PartCrafter 更像“直接生成多个 part”,BANG 更像“生成可控的拆解过程”

相比传统 part segmentation

  • segmentation 主要处理可见表面语义标签
  • BANG 学的是部件分离轨迹与结构关系
  • 它更适合装配、打印、局部增强这类需要 part motion / part correspondence 的任务

相比 CLAY / TRELLIS 这类整体生成模型

  • 那些方法擅长一次生成完整资产
  • BANG 建立在这类大模型先验之上,补上了部件级生成与控制能力
  • 它可以被视为从 whole-shape generation 走向 part-aware structured workflow 的一步

延伸思考

BANG 也能帮助看清 3D 生成未来可能的分化。

一方面,它仍然属于当前概率式 3D 生成主线的延伸:在大模型先验上加入部件级拆解、控制和重组装能力,更贴近艺术资产制作、交互内容生成和打印原型。

但另一方面,它已经在往更结构化的工作流靠近。因为一旦任务开始关心:

  • 部件之间怎么装配
  • 哪些区域该被单独控制
  • 如何回装、打印、复用

问题就不再只是“生成一个看起来像的物体”,而是“生成一个带结构关系的对象”。这和工业建模的关注点更接近。

不过,BANG 当前的表示仍然是 latent field + mesh 解码 + 线性 exploded trajectory。它说明 part-aware structure 很重要,但还没有进入 CAD 级参数化、约束驱动、程序化装配那条路线。长期看,工业 3D 生成若要满足高精度需求,大概率还需要比 BANG 更强的结构表示。


优势与局限

优势

  • 把 part-level generation 从静态分割推进到连续 exploded dynamics
  • 训练上采用 pretrain-then-adaptation,参数效率较高
  • 同时支持 bbox、surface region 和 2D ROI 的可控交互
  • 对局部几何增强、结构理解、打印装配都很有用

局限

  • 输入仍以已有几何为核心条件,更接近 part-aware manipulation / decomposition,而不是纯文本直接生成复杂部件结构
  • 爆炸轨迹主要基于线性平移假设,复杂机械关节或旋转装配不在当前建模范围内
  • 数据集约 20K,类别和结构多样性仍受限于可过滤到的高质量多部件资产
  • 基础表示仍是 latent field + SDF 解码,不是原生 mesh / CAD 装配表示

一句话总结

BANG 的意义在于,它把 3D 生成从“输出一个整体物体”推进到“生成一个可连续拆解、可控、可回装的部件结构”,让 3D foundation model 更接近真实建模、理解和制造流程。

评论

评论功能当前未启用。当前站点不依赖 GitHub 评论服务;如果后续需要评论,建议接入自托管评论后端。
回到页面顶部