AutoBrep: Autoregressive B-Rep Generation with Unified Topology and Geometry
Autodesk Research
一句话总结
AutoBrep 用一个 GPT 式自回归 Transformer,把 CAD 边界表示(B-Rep)的几何与拓扑统一编码为一串离散 token,通过下一 token 预测直接端到端生成高质量、水密的 B-Rep 实体。
研究背景
B-Rep 是 CAD 中定义实体模型的标准数据结构,由顶点、边、环、面等拓扑元素及其承载的点、曲线、曲面等几何元素相互链接构成,是精确建模、仿真与制造的基础。自动生成高质量 B-Rep 有望重塑传统 CAD 设计流程。
现有深度学习方法分两条路线。一是”草图-拉伸”式的序列生成,先生成草图与拉伸/旋转等参数化建模指令再重建成 B-Rep,水密性和可编辑性好,但受限于建模序列数据集规模较小,且支持倒角、圆角等特征需要大量额外工作。二是直接生成,直接合成面、边等实体再缝合成实体,可利用大规模原始 B-Rep 数据、天然支持自由曲面,但要保证水密性和有效性很难,因为预测出的 B-Rep 元素必须精确对齐。
直接生成方法在历史上多采用多阶段训练:SolidGen 用三个独立模型分别生成顶点、边、面;BrepGen 有两个自编码器加四个扩散模型共六个模块。多阶段带来推理时误差累积、难以学习实体间联合分布、难以扩展到复杂模型等问题。AutoBrep 的目标就是用单一自回归模型统一几何与拓扑,克服这些痛点。
方法
整体框架
AutoBrep 分两大部分:先用离散表示学习把面/边的几何压缩为紧凑的潜在 token,再用统一 tokenization 把几何、包围盒与拓扑串成序列,交给自回归 Transformer 做下一 token 预测。序列顺序遵循 B-Rep 面邻接图的广度优先遍历(BFT)。
flowchart TD
A[B-Rep 实体] --> B[面/边采样为点网格 32x32]
B --> C[深度压缩自编码器压缩]
C --> D[FSQ 有限标量量化<br/>离散几何 token]
A --> E[面邻接图广度优先遍历 BFT]
E --> F[几何 token F/E + 包围盒 C<br/>+ 局部拓扑参照 token T]
D --> F
F --> G[GPT 式自回归 Transformer<br/>下一 token 预测]
G --> H[后处理: B 样条拟合 + 缝合]
H --> I[水密 B-Rep 实体]
关键设计
-
统一离散 tokenization:把每个面表示为参数域内均匀采样的 \(32\times32\) 点网格、每条边为 \(32\) 点的一维网格,用深度压缩自编码器压缩后再用 FSQ 量化成离散 token(面 4 个、边 2 个 token,码本大小 \(\mathrm{prod}([8,5,5,5])=1000\))。每个几何 token 配一组量化到 1024 个 bin 的 3D 包围盒 token \(C\),用来还原全局位置与尺寸。FSQ 相比 VQ-VAE 无需辅助损失即可自动最大化码本利用率。
-
广度优先遍历(BFT)定序:把面看作节点、边看作连接,从实体左下角的面出发按层遍历。每到新一层就加入未访问的邻接面及连回上一层的边;边在其两个相连面都遍历后立即被 token 化并分组,体现”边来自面相交”的自顶向下视角。相比按全局坐标排序,BFT 显著提升有效率与覆盖率。
-
局部拓扑参照 token \(T\):由于 BFT 中某层的边只可能连到上一层或同层更早的面,边的面-边关联被限制在最近两层的局部窗口内。\(T\) 只在这个动态滑动的局部窗口内给面编号(\(T_0, T_1, \ldots\)),随遍历推进而重置更新。实验证明局部参照相比全局参照对性能至关重要。分配 200 个面 ID 可支持跨两层最多 200 个面。
-
自回归预训练 + 微调补全:用交叉熵下一 token 预测预训练基础模型,训练时随机旋转改变遍历起点以减少过拟合,并用”层级注意力 dropout”随机屏蔽局部窗口外的 token,促使模型关注局部结构。之后在 ABC-Constraint 上做监督微调支持 B-Rep 自动补全:把用户给定面作为第一层 token 附在序列开头,只对生成层计算损失,从而保证用户面被精确保留(用哑元 token \(T_u\) 处理尚未连接的悬挂边)。
实验结果
在自建的 ABC-1M 数据集(约 130 万唯一实体)上做无条件生成评测。BrepGen 与 HoLa 在同数据集上重训(最多 100 面),DTGBrepGen 用其发布模型。指标含覆盖率 COV、最小匹配距离 MMD、JS 散度 JSD、Novel、Unique、Valid 及每面平均推理时间(MMD 与 JSD 乘以 \(10^2\))。
| 方法 | COV % ↑ | MMD ↓ | JSD ↓ | Novel % ↑ | Unique % ↑ | Valid % ↑ | Time ↓ |
|---|---|---|---|---|---|---|---|
| DTGBrepGen* | 59.39 | 1.60 | 1.47 | - | - | 64.3 | 0.69 |
| BrepGen | 67.41 | 1.91 | 3.50 | 99.7 | 94.5 | 46.6 | 1.25 |
| HoLa | 67.80 | 1.62 | 2.86 | 99.8 | 95.3 | 54.8 | 1.68 |
| AutoBrep coord | 66.28 | 1.53 | 1.61 | 99.9 | 95.8 | 63.6 | 0.49 |
| AutoBrep global | 68.09 | 1.58 | 1.03 | 99.7 | 94.5 | 65.3 | 0.48 |
| AutoBrep | 71.49 | 1.45 | 0.97 | 99.8 | 93.7 | 70.8 | 0.46 |
AutoBrep 在覆盖率、MMD、JSD 上全面领先,有效率最高达 70.8%,推理速度也最快(得益于自回归模型可用 KV 缓存,而扩散基线不能)。随面数增加,基线有效率快速下降,AutoBrep 在多达 100 面时仍保持约 50% 有效率。消融显示:去掉局部窗口改用全局参照(AutoBrep global)、或改按全局坐标排序(AutoBrep coord),几乎所有指标都下降。
亮点与局限
亮点:
- 把几何与拓扑统一为单一离散 token 流,用一个自回归 Transformer 联合建模,把模块数从六个(BrepGen)减到三个(含两个编码器),训练流程大幅简化。
- 相比多阶段扩散方法,推理提速 2× 到 5×,生成质量与水密率更高。
- 可扩展到远超基线(约 50 面)的复杂实体,同时保持更高有效率与水密率。
- B-Rep 自动补全在统一 tokenization 下是特例,可保证用户提供的面被精确保留,适合装配接口约束下的可控生成。
局限:
- 存在典型失败情形:面在狭小空间密集堆叠时的自相交;螺纹(螺钉)等细长缠绕面难以正确生成;薄壳结构产生伪影。
- 生成结果仍依赖 OpenCascade 的后处理缝合,靠其鲁棒性容忍轻微不一致才能重建实体。
- 局部参照上限为跨两层 200 个面,超复杂拓扑的支持仍有边界。
延伸思考
把 CAD B-Rep 生成彻底”语言模型化”是这篇工作最有想象力的地方:一旦几何与拓扑都成为离散 token,NLP 领域成熟的可扩展性(长序列、KV 缓存、GPT 架构)与可控性(条件前缀、微调)就能直接迁移过来,自动补全就是最自然的”前缀续写”。这也提示未来可探索文本、图像等多模态条件到 B-Rep 的统一生成,或复用大模型的指令微调范式做交互式 CAD 编辑。另一方面,螺纹、薄壳等失败案例说明纯离散点网格表示对高频/极端长宽比几何仍有精度瓶颈,如何在 token 化中保留参数曲面的解析先验,或将有效性检查纳入训练回路(而非仅靠后处理),是值得深入的方向。