BANG¶
BANG: Dividing 3D Assets via Generative Exploded Dynamics

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
框架可以分成四步:
- 先预训练一个静态 3D 几何生成基础模型
- 再用 exploded-view adapter 学习“输入物体 + 时间 -> 爆炸状态”
- 用 temporal attention 保证多帧之间平滑过渡
- 用 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。
做法是:
- 从输入 mesh 均匀采样点云
S - 用与 VAE encoder 类似的 cross-attention 编成几何条件
G - 把时间
t和预期 part 数一起注入一个轻量 transformer adapter - 通过并行 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 里。
方法是:
- 用几何 feature decoder 在 3D surface points 上提取特征
- 用 DINOv2 提取 2D 渲染图像中的区域特征
- 通过 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 generationBANG更强调从完整物体到 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 更接近真实建模、理解和制造流程。