BrickAnything: Geometry-Conditioned Buildable Brick Generation with Structure-Aware Tokenization¶
会议: NeurIPS 2026
arXiv: 2605.26182
代码: https://github.com/xjtunzy/BrickAnything
领域: 3D视觉
关键词: 积木结构生成, 点云条件生成, 树状分词表示, 直接偏好优化, 物理可拼装性
一句话总结¶
BrickAnything 提出了一个以点云为通用几何条件的自回归积木生成框架,通过基于局部连接关系的结构感知树状分词(Tree Tokenization)将全局坐标预测转化为局部装配预测,并结合物理与几何双重奖励的直接偏好优化(DPO)与带父节点回滚的有效性约束解码,在复杂形状上实现了兼具几何保真度与物理稳定性的离散积木结构生成。
研究背景与动机¶
离散积木结构(如乐高积木拼装)为连接数字三维几何与物理实体搭建提供了一种模组化、具备实体支撑的强物理约束表征。然而,与网格(Mesh)、点云(Point Cloud)、3D 高斯(3DGS)或神经隐式场(NeRF)等连续表征不同,积木结构的合成受到极为严苛的离散组合与物理结构约束:生成的积木模型不仅需要逼近目标三维几何的外形轮廓,还必须严格满足零件库离散尺寸兼容性、凸粒(stud)与凹槽的局部无干涉咬合,以及抵抗重力倾覆的静态物理平衡。
现有积木生成方法主要分为启发式组合优化与自回归生成两大阵营。传统的启发式搜索方法(如 Legolization、Image2Lego)直接将体素化空间映射到预定义积木集,通过离散组合优化求解拼装方案;但当复杂目标几何无法在严苛约束下直接找到可行解时,搜索极易崩溃(在复杂子集上成功率为 0%),且随着搜索空间扩大,组合爆炸导致计算代价极高。另一方面,近期基于语言模型自回归范式的方法(如 BrickGPT、BrickNet)将积木拼装序列化,但往往仅以文本或单张 2D 图像作为输入条件,缺乏精确显式的 3D 空间约束,生成的积木模型容易产生空间错位,且通常依赖朴素的全局坐标排序(如按 \(z,y,x\) 字典序压平),切断了积木间实际的物理依托关系,导致模型生成大量悬空、碰撞或不稳定的中间态。
要实现从任意三维物体向实体可拼装积木的可靠转化,核心在于如何在统一的几何条件指引下,显式捕捉积木组装过程中的局部结构依附性与全局物理稳定性。核心 idea:以点云为模态无关的统一三维几何界面,提出结构感知树状分词(Tree Tokenization)将积木生成显式组织为局部连接树,并结合几何保真与物理平衡的 DPO 偏好对齐及父节点导向回滚机制,实现高保真且物理可搭建的积木自回归合成。
方法详解¶
整体框架¶
BrickAnything 的整体生成流水线包含三大核心阶段:首先将输入的任意三维表征统一转化为带法向量的表面点云,经由预训练几何编码器提取几何条件词元;在预训练阶段,将离散积木结构构建为竖直咬合图并展开为广度优先搜索(BFS)生成树,通过结构感知树状分词转化为局部装配序列,驱动自回归 Transformer 进行以点云为条件的因果序列建模;在后训练阶段,基于体素重叠、表面倒角距离与静态力学平衡联合构建可建造性奖励,通过 DPO 偏好对齐优化策略模型;在推理阶段,引入元组级有效性约束解码以滤除局部冲突,并配合定位父节点的自适应回滚机制修正物理失稳。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
In["输入三维几何<br/>网格/多视角/点云"] --> Pts["模态无关几何接口<br/>采样点云及法向量 P, N"]
Pts --> Enc["几何条件编码<br/>Michelangelo 提取 shape tokens"]
Enc --> Trans["自回归生成器<br/>OPT-350M 因果 Transformer"]
Trans --> Dec["结构感知树状分词与解码<br/>BFS 遍历恢复局部装配关系"]
Dec --> Post["可建造性偏好对齐<br/>几何与力学联合奖励 DPO 优化"]
Post --> Roll["有效性约束解码与父节点回滚<br/>零件校验 + 力学平衡回溯重采样"]
Roll --> Out["最终输出:物理稳定可建造积木结构"]
关键设计¶
1. 结构感知树状分词:将全局绝对坐标预测解耦为局部相对连接预测
以往自回归积木生成(如 BrickGPT)普遍采用空间全局排序,直接预测积木在 \(20 \times 20 \times 20\) 体素网格中的绝对空间坐标 \((h, w, x, y, z)\) 并按 \((z, y, x)\) 字典序排列。这种方式完全忽略了积木组装的真实物理依赖,生成过程中极易出现空中悬浮或局部无法咬合的破碎状态。BrickAnything 针对这一痛点,提出基于装配关系的局部树状分词机制。对于积木集合 \(\mathcal{B}=\{b_i\}_{i=1}^N\),首先根据垂直咬合条件构建无向连接图 \(\mathcal{G}=(\mathcal{B}, \mathcal{E})\):
$\((b_i, b_j) \in \mathcal{E} \iff |z_i - z_j| = 1 \quad \text{and} \quad \Omega_i^{xy} \cap \Omega_j^{xy} \neq \emptyset\)$
其中 \(\Omega_i^{xy}\) 为积木在底面水平投影的凸粒占用集合。在确认图连通后,选取字典序最小的积木作为根节点 \(b_{root}\) 进行广度优先遍历(BFS),生成一棵确定性的装配生成树。根节点采用绝对参数 \((x_0, y_0, z_0, h_0, w_0)\) 编码,而所有子节点 \(b_i\) 均相对其父节点 \(b_{p(i)}\) 编码为紧凑四元组 \((f_i, h_i, w_i, m_i)\):
$\(f_i = s_i h_{p(i)} w_{p(i)} + v_i^p h_{p(i)} + u_i^p, \qquad m_i = v_i^c h_i + u_i^c\)$
其中 \(s_i \in \{0, 1\}\) 表示垂直连接方向(\(s_i=0\) 为在父节点上方,\(s_i=1\) 为在下方),\((u_i^p, v_i^p)\) 和 \((u_i^c, v_i^c)\) 分别是公共连接凸粒在父节点与子节点各自局部坐标系下的二维偏移,\(m_i\) 则为子节点侧的针脚锚点。遍历中当一个父节点的全部子积木生成完毕后,插入特殊的 EOP(End of Parent)标记。该设计将庞大的全局空间离散搜索完全转化为基于父节点的局部连接选择,不仅显式约束了每一块新积木必须咬合在已有结构上,而且词表规模控制在仅 65,平均序列长度相较于全局五元组甚至更短(\(4N + I + 3 \le 5N + 2\))。
2. 几何保真与物理平衡联合奖励:多目标驱动的偏好优化(DPO)
自回归模型的最大似然训练(SFT)只能学习 Token 序列的统计分布,无法显式感知生成产物整体的几何重合度与物理力学平衡。针对此问题,本文提出联合测量几何贴合与静态稳定性的可建造性奖励函数 \(R(\hat{\mathcal{B}}, \mathcal{P}) = R_{\text{geo}} + R_{\text{stable}} \in [0, 3]\)。在几何层面,同时引入体素占据重叠度 \(R_{\text{IoU}} \in [0, 1]\) 与基于表面法向点云的倒角距离(Chamfer Distance)奖励 \(R_{\text{CD}} = \max(1 - 5 D_{\text{CD}}(\mathcal{P}, \hat{\mathcal{P}}), 0) \in [0, 1]\),其中表面点云通过对积木占据网格运行 Marching Cubes 提取并标准化后计算,兼顾体积覆盖与细节轮廓边缘。在物理层面,依据摩擦约束下的静态力学平衡方程计算每块积木的稳定得分 \(s_i \in [0, 1]\),并以木桶效应取全局最小值作为结构稳定性奖励 \(R_{\text{stable}} = \min_{b_i \in \hat{\mathcal{B}}} s_i\)。在后训练阶段,对同一几何条件采样 6 个候选方案构建偏好对,过滤出奖励差值 \(\Delta R \ge 0.2\) 且正例奖励不低于 1 的高质量偏好对 \((y_w, y_l)\),采用奖励加权的 DPO 目标结合辅助 SFT 损失联合微调: $\(\mathcal{L}_{\text{post}} = -\mathbb{E}_{(x, y_w, y_l)} \left[ \Delta R \log \sigma \left( \beta \log \frac{\pi_\theta(y_w \mid x)\pi_{\text{ref}}(y_l \mid x)}{\pi_{\text{ref}}(y_w \mid x)\pi_\theta(y_l \mid x)} \right) \right] + \lambda \mathcal{L}_{\text{SFT}}\)$ 这种奖励差加权机制自适应放大了质量差距明显样本对梯度的驱动作用,显著优化了模型的输出分布,使采样的积木形态自然倾向于稳固且紧贴原型的装配方案。
3. 有效性约束解码与父节点导向回滚:消除局部冲突与全局失稳的双重防线
自回归生成容易在局部产生超出预定积木类别、非法连接点或空间体积相撞的非法决策,且单块积木的微弱受力不均可能引发整座结构的坍塌。为此,BrickAnything 设计了分层防御机制。首先在自回归解码各步执行元组级有效性约束:在采样出 \((f, h, w, m)\) 后,实时映射到局部物理网格,校验其是否属于标准 8 种乐高砖块、连接索引是否在父积木网格内,以及是否与当前已占用空间存在刚体碰撞;任何一项不通过则立刻拒绝并重新采样,确保生成的 Token 序列 100% 具备几何合法性。其次,针对局部合法但全局可能失稳的整体结构,设计了父节点导向的稳定性回滚机制:在全结构生成完毕后,通过受力平衡方程定位序列中首个失稳积木 \(k = \min\{i \mid s_i = 0\}\),顺着生成树依附关系回溯其父节点 \(b_{p(k)}\) 在序列中的生成时刻,将解码状态精准回滚至生成 \(b_{p(k)}\) 之前并重新解码后续子树。相比于 BrickGPT 盲目回滚固定步数的做法,这种基于生成树拓扑的回溯精准切除了力学传导故障的结构根源,保留了大部分稳固的前序积木,大幅缩减了反复试错的计算开销。
损失函数 / 训练策略¶
模型预训练阶段采用标准自回归因果语言建模损失 \(\mathcal{L}_{\text{SFT}}\),以预训练的 Michelangelo 编码器提取的点云特征作为前置几何 Prompt,在 8 张 NVIDIA A100 (80GB) 上采用 AdamW 优化器、fp16 混合精度训练 50 个 epoch,学习率采用余弦退火策略(基准学习率 \(1 \times 10^{-4}\),预热从 \(1 \times 10^{-6}\) 起步),全局 batch size 为 128。在 DPO 微调阶段,利用约 1.6 万条精心筛选的高质量偏好对微调 10 个 epoch,设置 KL 散度超参数 \(\beta = 1.0\),辅助 SFT 损失权重 \(\lambda = 1.0\),基准学习率下调至 \(5 \times 10^{-7}\)。
实验关键数据¶
主实验¶
实验基于 ShapeNet、Objaverse 及 Objaverse-XL 构建的 16.8 万对高质量网格-积木数据集。测试集分为两组:一组为启发式搜索成功转换的 Stable 子集(500 个样本);另一组为传统 Legolization 搜索直接失败的 Challenging 子集(500 个样本)。评估指标包括表面倒角距离(CD,越低越好)、体素交并比(IoU,越高越好)、物理稳定率(%Stable,越高越好)、结构有效率(%Valid,越高越好)以及平均回滚次数(Rollback,越低越好)。
| 测试子集 | 方法 | CD ↓ | IoU ↑ | Rollback ↓ | %Stable ↑ | %Valid ↑ |
|---|---|---|---|---|---|---|
| Challenging 子集 | Legolization (Heuristic SOTA) | – | – | – | 0.0% | 100.0% |
| BrickGPT-style (w/o DPO) | 0.1307 | 0.544 | 6.991 | 74.0% | 100.0% | |
| BrickGPT-style (with DPO) | 0.1309 | 0.553 | 6.750 | 76.0% | 100.0% | |
| BrickAnything (Ours) | 0.1299 | 0.586 | 0.422 | 83.4% | 100.0% | |
| Stable 子集 | Legolization (Ground-truth SOTA) | 0.1120 | 1.000 | – | 100.0% | 100.0% |
| BrickGPT-style (w/o DPO) | 0.1297 | 0.721 | 3.916 | 100.0% | 100.0% | |
| BrickGPT-style (with DPO) | 0.1292 | 0.742 | 3.620 | 100.0% | 100.0% | |
| BrickAnything (Ours) | 0.1283 | 0.788 | 0.184 | 100.0% | 100.0% |
消融实验¶
消融实验深入验证了有效性约束解码、父节点导向回滚、DPO 偏好对齐以及树状分词等组件的不可或缺性。
| 配置 | CD ↓ | IoU ↑ | Rollback ↓ | %Stable ↑ | %Valid ↑ | 说明 |
|---|---|---|---|---|---|---|
| 完整模型 (Full Model) | 0.1299 | 0.586 | 0.422 | 83.4% | 100% | 挑战集下表现最优,回滚代价极小 |
| w/o DPO | 0.1301 | 0.573 | 0.444 | 82.4% | 100% | 缺少偏好对齐,IoU 下降 1.3%,回滚增加 |
| w/o Rollback or DPO | 0.1283 | 0.597 | – | 72.0% | 100% | 仅凭有效性解码无法保证力学平衡,稳定率暴跌 11.4% |
| w/o Valid-Decoding, Rollback or DPO | 0.1271 | 0.602 | – | 60.6% | 68.6% | 无约束自由生成,有效率暴跌至 68.6%,无法实体构建 |
| 树状分词换为 BrickGPT 扁平坐标分词 | 0.1309 | 0.553 | 6.750 | 76.0% | 100% | 失去拓扑依附指导,回滚暴增 16 倍,稳定率下降 7.4% |
关键发现¶
- 树状分词从根源上降低了推理纠错代价:在挑战集上,BrickAnything 的平均回滚次数仅为 0.422 次,相比 BrickGPT 扁平分词基线的 6.750 次缩减了整整 16 倍;即使在简单子集上,回滚次数也从 3.62 次下降到了 0.18 次。这证明结构感知树状分词使模型天然学会“依附于实体装配”,避免了在空白区域盲目试错。
- 局部合法不等于整体稳定:消融数据显示,仅保留有效性约束解码时有效率虽达 100%,但在挑战集上的稳定率仅为 72.0%;必须结合针对失稳积木父节点的力学回滚,才能将稳定率推升至 83.4% 以上。
- DPO 有效平滑了几何保真与物理稳定的 Pareto 前沿:结合 DPO 后,不仅在挑战集和稳定集上 IoU 分别提升了 1.3% 和 3.7%,而且使原本需要依赖回滚纠偏的样本直接在初次采样中即满足力学要求,回滚次数进一步下降。
亮点与洞察¶
- 拓扑关系重构自回归建模:将三维物理装配任务从传统的“三维栅格点云/体素坐标回归”转换为“树状图的遍历与局部锚点预测”,巧妙利用 BFS 树将刚性装配规则深度融入序列因果关系中,兼顾了生成灵活性与物理自洽性。
- 精准的因果故障定位(Parent-Aware Rollback):利用树状分词的层级依附性,在检测到受力失稳时直接回溯至引发受力断裂的父节点,而非生硬地撤销最后若干步,实现了极其高效且不破坏已生成主体的局部手术式重绘。
- 多模态即插即用扩展:通过将 3D 点云作为中间统一几何界面,结合三维大模型(如 Hunyuan3D 2.5),能够无缝将 BrickAnything 扩展至单张图片生成积木(Image-to-Brick)及纯文本描述生成积木(Text-to-Brick)的任务中。
局限与展望¶
- 受限于固定的体素空间与零件库:当前实验环境限定在 \(20 \times 20 \times 20\) 的粗粒度体素网格以及 8 种基础矩形乐高砖块中,对于具有纤细分支、复杂曲面或微小局部细节的物体,容易产生过于简化的块状锯齿失真。
- 奖励函数的先验刚性:当前的力学平衡稳定性评估基于静态物理简化模型计算,且训练数据源自 Legolization 启发式转化的伪标签,未来若能引入真实装配物理引擎(如 Isaac Gym / MuJoCo)与真实人类拼装动作序列,将进一步提升建造方案的拟真度。
相关工作与启发¶
- vs Legolization: Legolization 是经典的离散组合启发式搜索方法,在规则几何上保真度极高,但在复杂几何或无解边界上计算耗尽且完全无法产出结果(Challenging 稳定率 0.0%);BrickAnything 采用数据驱动的自回归模型,不仅容错性强、生成速度快,且在极端几何下仍能保持 83.4% 的物理构建可行性。
- vs BrickGPT: BrickGPT 基于文本生成积木并采用扁平的坐标字典序分词,缺乏精确的三维几何指引,且平均需要高达 6.75 次回滚修补;BrickAnything 引入显式点云条件,并通过结构感知树状分词将回滚开销压缩至 0.42 次,显著增强了结构连贯性与装配严密性。
评分¶
- 新颖性: ⭐⭐⭐⭐ [将乐高离散装配图转化为 BFS 局部树状序列,将全局坐标预测成功重构为相对连接预测,思路巧妙且切合物理装配本质。]
- 实验充分度: ⭐⭐⭐⭐⭐ [构建了包含 16.8 万对样本的大规模基准,详细划分了稳定与高难度挑战子集,消融对比切中核心机制。]
- 写作质量: ⭐⭐⭐⭐⭐ [数学表达严谨,分词与反分词算法完整清晰,问题叙述条理分明。]
- 价值: ⭐⭐⭐⭐ [为 3D 生成走向物理制造、离散积木搭建与机器人自动装配提供了极具实用价值的全新范式。]