01 · 论文身份与最重要结论
PrimitiveAnything 将形状抽象变为条件序列生成:输入一个物体的点云,先提取形状条件,再逐个生成带类型、位置、旋转、尺度的几何基元,直到 EOS。它学习人工搭建的结构习惯,而不是只最小化曲面拟合误差。
固定来源:arXiv:2505.04622v1,2025-05-07,14 页合订 PDF。正文与主文扩展图第 1–9 页,致谢和参考文献第 10–11 页,附录 A/B/C 第 12–14 页(附录内部页码重新从 1 开始)。本页覆盖 Eq.1–15、Table 1–7、Figure 1–15。
官方项目页确认 SIGGRAPH 2025。Jingwen Ye 与 Yuze He 为共同一作;Yanning Zhou、Yong-Jin Liu、Xiao Han 为明确标注的通讯作者。第一作者机构为 Tencent AIPD,Yuze He 同时关联 Tsinghua University / Tencent AIPD,Yong-Jin Liu 为 Tsinghua University。原笔记的作者角色正确;venue 可在未来人工合并时由 preprint 更新,本文不改原始笔记。
| 核心得到的能力 | 证据 | 重要边界 |
|---|---|---|
| 多类型、变长、可编辑基元组合 | 长方体、椭圆柱、椭球;120K HumanPrim;平均 30.9、最大 144 基元 | 没有布尔运算树、拓扑连接图或物理接触保证 |
| 结构与几何兼顾 | HumanPrim CD 0.0404、Voxel-IoU 0.484;分割指标与用户研究优于所比基线 | MP 的 Hausdorff 0.120 优于本文 0.158,不能写全面胜出 |
| 文本/图像转基元 | 接 SDXL、Rembg、TRELLIS 后再做形状条件生成 | 核心网络不是原生文本模型,也不直接生成材质纹理 |
| 人类风格抽象 | 人工标注、30 人对 20 个 Objaverse 物体评分 | 不能证明唯一正确的语义分解或普遍认知模型 |

对原笔记的处理:保留全部用户正文、代码片段、PDF++ 选区与块标识。末尾新增纠错说明:离散整数是 0 到 K−1;released config 的 translation 范围为 [-1,1];class embedding 也参与 concat,得到 192→768;768 是隐藏宽度而不是序列长度。完整依据见“实现核查”节。
02 · 问题设定、动机与输出对象
几何拟合倾向于用许多重叠小块降低表面误差,却可能把一个语义部件拆碎;过去学习方法往往只训练单一类别、只输出 cuboid,难以跨类别泛化。本文的关键转变是用规模更大的人工装配监督,让模型学习“人如何选基元、摆位置、再调整姿态和尺寸”的分布。
输入形状可以来自已有 mesh 或上游 3D 生成器,但核心条件统一为点云。输出不是 triangle mesh 的顶点/面序列,而是一组预定义资产的实例与 SRT 参数。渲染时加载标准基元,依次施加尺度、旋转、平移即可恢复几何;不同基元可以重叠,论文没有定义并集边界重建、CSG 运算或 watertight mesh 生成。
\[\mathcal P=\{P_1,\ldots,P_N\},\qquad \widehat{\mathcal M}=\{p_1,p_2,\ldots,p_n\}.\tag{1}\] \[p_i=T(P_{c_i};s_i,r_i,t_i).\tag{2}\]c 是类型索引,s、r、t 各有三个分量。r 为 x-y-z Euler 角,t 为中心平移,s 为三个主轴的缩放。论文把 T 称为 rigid transformation,但含非均匀缩放的整体操作并非严格刚体变换;更准确说是 SRT 仿射实例化。
\[T(q;s,r,t)=R(r)\operatorname{diag}(s)q+t.\]这个展开是本页为解释实现所加。标准几何的尺寸与坐标轴约定决定 s 的实际意义,不能默认 s 就是最终包围盒三边长。公开代码还使用预制的 CubeBevel、SphereSharp、CylinderSharp 资产,因此“数学理想长方体”等类别名称与实际 mesh 模板要区分。

Figure 2 的四步是:人工装配规范化 → 点云条件编码 → 基元级自回归 Transformer → 属性级级联解码。两种顺序不要混淆:跨基元按空间排序;每个基元内部按类型→平移→旋转→尺度生成。
03 · 对称性规范化:为什么同一形状会有多个标签
一个 cuboid 先绕轴转 90°,再交换相应尺度分量,可以与原形状完全相同;180° 对称旋转也能产生几何等价的表示。若训练时同一几何对应多个不一致参数,离散回归容易出现模式混淆。规范化并不提升基元词表的几何表达能力,而是减少监督中的表示冗余。
v 是候选对称轴,m 是相应对称阶数。这里用 n_axis 明确区分“对称轴数”与 Eq.1 的基元数 n,原文重复使用 n。除了纯旋转,能够通过尺度轴交换获得等价形状的旋转也计入候选。
\[r_i'=\underset{r_k\in\mathcal R}{\arg\min}\,\|\widehat r_k\|_1.\tag{4}\] \[T(\cdot;\widehat s_k,\widehat r_k,\widehat t_k) =T\!\left(T(\cdot;s_k,r_k);s_i,r_i,t_i\right).\tag{5}\] \[p_i=T(P_{c_i};s_i',r_i',t_i').\tag{6}\]Eq.4 的原写法将候选索引与所选旋转混写;实际操作是枚举等价组合,选择 Euler 角 L1 范数最小的一组,并保留与其对应的尺度、旋转、平移。Eq.5 中的内层 s_k 表示与对称变换配套的尺度重排,不能只旋转而忘了同步交换轴。
附录 Figure 14 给出 cuboid 的 x 轴例子:仅考虑纯几何旋转时 180° 重合,阶数为 2;把 90° 与 270° 后交换 y/z 尺度也计入,则阶数为 4。图中 360° 回到起点,是周期演示,不表示把同一身份变换重复算成第五个不同状态。
“ambiguity-free”应理解到什么程度
- Paper Verified:该规则在数据与消融中有效减少参数混淆,Table 5 支持整体收益。
- Reviewer:有限旋转候选的并集不自动等于完整旋转群的闭包;原文没有详细给出每种基元的完整候选构造、组合枚举或等值 tie-break。
- Euler 角本身有周期与奇异性;最小 L1 可能出现多个相等解。因此这是实用 canonicalization,而非对任意对称连续几何给出的唯一性定理。
- 这是单个基元表示的对称性,不等于给整个物体施加镜像/重复结构约束。附录明确说对象级对称约束未加入,因此生成的对称物体仍可能左右不一致。
来源:固定 PDF §3.1、附录 B/C,Figure 3、14。当前公开推理代码未提供完整训练标注规范化管线,不能宣称已逐个复现其群枚举规则。
04 · 序列、token 与级联属性概率
\[p_i=F(C;p_1,\ldots,p_{i-1}).\tag{7}\] \[h_i=E\!\left(e_c(c_i),e_s(s_i),e_r(r_i),e_t(t_i)\right).\tag{8}\] \[f_i=S(C;h_1,\ldots,h_{i-1}).\tag{9}\]Michelangelo 编码点云得到条件 token C;后面接可学习 SOS,再接已有基元 token。物体内部各基元按中心的 z-y-x 顺序排列,z 向上、从低到高。这个序列是人为定义的规范顺序,不是采集到的真实建模者操作历史;“human-crafted”描述监督装配,不意味着模型模仿了逐步鼠标操作。
| 量 | 标准配置维度 | 含义 |
|---|---|---|
| 尺度/旋转/平移 embedding | 各 3×16=48 | 每个离散标量一个 embedding,再 flatten 三轴 |
| 类型 embedding | 48 | 三类资产索引的可学习向量 |
| 完整基元 concat | 48+48+48+48=192 | 当前 embed_order=ctrs,随后 Linear(192,768) |
| 单基元 token | 768 | 隐藏通道宽度,与“有几个基元”无关 |
| 序列长度 | 条件 token 数 + SOS + 已有基元数 | 推理上限 144 个基元;条件长度应看实际 encoder 输出,不能只读配置中的 77 就断言 |
属性级解码
\[\widehat c_i=D_c(f_i).\tag{10}\] \[\widehat t_i=D_t(f_i,e_c(c_i)).\tag{11}\] \[\widehat r_i=D_r(f_i,e_c(c_i),e_t(t_i)).\tag{12}\] \[\widehat s_i=D_s(f_i,e_c(c_i),e_t(t_i),e_r(r_i)).\tag{13}\]每个 D 是两层 MLP,隐藏宽度 768,输出相应类别 logits。类型影响合理的位置与形状参数,位置影响旋转/尺度选择;级联避免所有属性在同一特征下互相独立。当前实现每组三个轴由一次 MLP 输出,随后分别采样,并没有在该组内部再按 x→y→z 自回归。
\[P_\theta(\widehat{\mathcal M}\mid C) =\left[\prod_{i=1}^{n}\left\{P_\theta(c_i\mid H_i) P_\theta(t_i\mid H_i,c_i) P_\theta(r_i\mid H_i,c_i,t_i) P_\theta(s_i\mid H_i,c_i,t_i,r_i)\right\}\right]\, P_\theta(\mathrm{EOS}\mid H_{n+1}),\]其中 \(H_i=(C,p_{\lt i})\)。该概率分解是本页对 Eq.7–13 的说明性展开,略去了每一步 continue 的 Bernoulli 因子;完整停止分布还应包含前 n 步不终止的概率。不能把这个展开当论文额外编号公式。
训练的 next-step CE 通常以真值前缀进行 teacher forcing;论文 Eq.11–13 的条件属性没有预测帽号,推理代码则明确串接刚采样的属性。训练完整 driver 未公开于已审阅代码,具体训练时是否全程 teacher forcing 或混入采样不能仅凭推理文件最终确认,复现时需要注明。
05 · 离散监督与几何损失
\[\mathcal L=\mathcal L_{\mathrm{eos}}+\mathcal L_{\mathrm{ce}}+\mathcal L_{\mathrm{cd}}.\tag{14}\]EOS 用 binary cross-entropy,四组属性用 discrete cross-entropy。几何项用于让离散分类不仅命中参数标签,还关心最终形状。尺度或角度相差一个 bin 对不同大小基元的几何影响不同,单纯 CE 不表达这种结构。
\[\mathcal L_{\mathrm{cd}}=\operatorname{CD}(pc_{\mathrm{pred}},pc_{\mathrm{gt}}).\tag{15}\]论文用 Gumbel-Softmax 为离散属性提供可微采样,对预测装配与真值基元采样点云再算 CD。正文说“for each generated primitive”,随后 Eq.15 写装配集合的点云,因此 per-primitive 对齐与集合级汇总细节并不完全明晰。当前公开 forward 仅返回下一基元特征,没有包含所述 CE/Gumbel/CD 训练损失实现,不能用它补出未经证实的训练细节。
\[y_k=\frac{\exp((\ell_k+g_k)/\tau)} {\sum_j\exp((\ell_j+g_j)/\tau)},\qquad g_k=-\log(-\log U_k).\]此式只是 Gumbel-Softmax 原理解释:τ 控制软硬程度,可用 straight-through 硬选择保持离散前向。本文没有在固定 PDF 给出具体 τ、退火策略或 hard 标志,不能将此通用示例伪装成原始配置。
训练 CD 与评估 CD不能混用
训练几何监督针对人工基元真值,评估几何指标比较预测装配与原始 mesh 表面点云。人工抽象本身就可能不精确贴合原 mesh,所以标签拟合与几何重建不是完全相同目标。公开的可选推理重建函数采用 PyTorch3D CD,而 eval.py 调用 point_cloud_utils;平方/非平方距离与归约方式必须以库版本和调用为准,不将名字相同当作数值可互换。
对于两组点 P、Q,典型双向最近邻 CD 可写为 \(\frac1{|P|}\sum_{p\in P}\min_{q\in Q}d(p,q)+\frac1{|Q|}\sum_{q\in Q}\min_{p\in P}d(q,p)\)。这个解释不指定 d 是欧氏距离还是平方距离,以免覆盖具体实现。
06 · HumanPrim 与完整训练配置
| 项目 | 固定论文设置 | 复现注意事项 |
|---|---|---|
| 数据规模 | 120K;mesh、surface point cloud、人工 primitive assembly 三者成对 | 不是 Objaverse 自动拟合伪标签;完整训练集来源许可和去重细节未充分展开 |
| 人工标注 | 自定义 3D engine GUI;完整轮廓覆盖与符合人类感知两条指导原则 | 未给每个样本标注工时、多人一致性或明确分层抽象标签 |
| 数量分布 | 平均 30.9、最长 144 | 样本复杂度与标注风格共同影响基元数 |
| HumanPrim test | 314 个高质量、artist-created 标注样本 | 文中表述随机选择高质量样本;验证集与精确训练 split 数未单独列明 |
| Chair 测试 | HumanPrim 59;ShapeNet test 1317 | 学习型基线只支持特定类别;ShapeNet 无本文 primitive 真值分割标签 |
| 输入规范 | 归一化到 unit cube,点云条件用 Michelangelo encoder | 公开配置平移范围 [-1,1],需按真实资产/数据规范核对单位 |
| 主干 | 12 层、hidden 768;级联 MLP 两层、hidden 768 | released inference config 是 6 attention blocks 与 3 GateLoop blocks,单独记录 |
| 离散化 | 每轴 rotation 180、scale/translation 各 128 | 公开 infer.yml rotation 181,范围 [-181,181] |
| 优化器与预算 | Adam,LR 0.001,batch 128,梯度累积 4;8×V100、3 天 | 未明确 batch 128 是 per-device 还是 global;不能擅自算成 4096 或 512 effective batch |
| 未明确的训练量 | epochs/steps、scheduler、warmup、Adam betas、weight decay、训练精度等未完整提供 | 不能把构造函数默认值填成实际论文实验值 |
| 数据统计(原 Figure 13) | 比例 |
|---|---|
| cuboid / elliptical cylinder / ellipsoid | 85.2% / 11.8% / 3.0% |
| 0–24 / 24–48 / 48–72 个基元 | 62.0% / 18.5% / 6.6% |
| 72–96 / 96–120 / 120–144 个基元 | 5.0% / 3.9% / 4.0% |
两组比例各和为 100%。区间端点的实际闭开约定没有写清,表格保持原范围而不自行分配边界。大多数样本很简单且长方体占绝对多数,整体平均指标可能掩盖椭球、细结构与长序列的不足。宜额外按 primitive 类型、序列长度和 OOD 拓扑分层评价。
开源范围:官方仓库声明释放 test dataset、code、pretrained checkpoints 和 Gradio demo;依赖 pMF 类论文的“训练代码齐全”说法不适用这里。已审阅主仓库入口没有训练脚本,transformer forward 也未实现论文训练 loss,不能宣称完整 HumanPrim 120K 训练复现已具备全部材料。
来源:固定 PDF §3.4、§4.1、附录 B;官方仓库。
07 · 实现审计与原笔记补充纠错
7.1 精确离散化与反量化
\[k=\operatorname{clip}_{[0,K-1]}\!\left( \operatorname{round}\!\left(K\frac{a-l}{h-l}-\frac12\right)\right),\qquad \widetilde a=l+\frac{k+1/2}{K}(h-l).\]这是公开 utils.py 的公式化转写。输出落在 bin 中心而不是端点。scale 的 K=128、[0,1],步长 1/128;translation 的 K=128、[-1,1],步长 1/64;rotation 的 K=181、[-181,181],中心从 −180° 到 180°、步长 2°。因此代码用 181 而论文说 180,差异有明确工程含义,但两端的 ±180° 又可能表示相同旋转,不应据此宣称完全消除了周期冗余。
量化误差上界约半个 bin,仅适用于范围内、远离 wrap/clamp 等特殊情况。一个细杆的 rotation 一档误差可能造成远端更大位置偏移,所以“128 档足够”不能脱离尺度讨论;邻接基元也可能出现缝隙。
7.2 保护原笔记并追加更正
| 原笔记观点 | 核查后的补充 | 直接依据 |
|---|---|---|
| 范围展开到 [0,num_discrete] 的整数 | 最大整数是 K−1;取 round 后 clamp | utils.py discretize |
| translation 范围 [0,1] | 当前 released infer.yml 为 [-1,1];scale 才是 [0,1] | configs/infer.yml |
| 三组 SRT concat 得 144,再投影 768 | 遗漏了 48-d type embedding;实际四组 concat 得 192→768 | encode 与 init_dim 计算 |
| 投影到 sequence length 维度 | 768 是 hidden width;序列长度随条件 token 和基元数变化 | 张量 b×np×dim 与 decoder 输入 |
| condition 与 transform 之间有 SOS | 应区分全局 shape condition C 与每基元类别 c;前缀是 point-cloud tokens→SOS→primitive tokens | forward 的 shape_cond_with_cat 分支 |
以上不是修改或否定整份原笔记,而是对同一官方代码现状追加精确说明。原有 PDF++ 跨页选区、代码片段与块引用全部保留在合并候选的原始前缀中。
7.3 论文与公开配置的差别
- 论文 12 层 Transformer;infer.yml 为 attn_depth=6、attn_heads=6、dim=768,另有 coarse_pre_gateloop_depth=3。不能把 3 GateLoop 层加到 6 就伪称恢复了论文 12 层,也不能只看构造函数默认 depth=12 忽略配置覆盖。
- 点云 conditioner 在代码中被 requires_grad=False 冻结;条件输出经 projection 后前缀拼接。embed_pc 推理入口使用 no_grad/detach,但不能据此推导训练 projection 一定冻结,因为 forward 的 pc 分支可另走路径。
- 标准库资产和基础点云路径是硬依赖;类型映射硬编码为 CubeBevel=0、SphereSharp=1、CylinderSharp=2。理论可扩展词表不等于只改 num_type 就能立即支持新几何,资产、类型映射、训练标签及 head 必须同步。
- 当前 forward 接收额外 kwargs,但只返回最后一步 feature 或 cache,并无完整 CE、EOS、Gumbel-Softmax/CD loss。它是可运行推理实现的审计证据,不是论文训练实现完全公开的证据。
7.4 实际生成与隐藏策略
infer.py 默认 temperature=0,选择 argmax;模型接口默认 temperature=1。top_k_2 保留每维前 10% 类别,取 ceil:181 rotation bins 留 19 个,128 bins 留 13 个,3 个类型只留 1 个。因此即使 temperature>0,默认 top-k 下类型仍为确定性选择,随机性主要来自连续属性 bins。
常规 generate 使用 KV cache,每步先采出一个候选基元,再算 EOS sigmoid>0.5;最终从首次 EOS 的位置开始整体 mask,包括该位置的候选。首轮不允许立即 break,但 EOS code 仍可能被记下;故实现中的 can_eos 并不是严密“至少输出一个有效基元”的保证。具体边界影响未经运行验证,作为测试用例提示。
还存在可选 generate_w_recon_loss:仅支持 batch=1,若新基元使重建 CD 不下降,最多重采 5 次,temperature 强制 1.0,选择改善或最好候选。标准 infer.py 调用的是 generate,不能把这个可选重试策略当作论文表格或默认推理的已使用步骤。初次 CD 调用接收 single_directional 参数,重试路径省略而回落默认 True;选择双向模式时需要检查该不一致。
输出 JSON 记录 type_id、location、quaternion rotation、scale、固定灰色;GLB 则按基元类别着色,并做坐标转换 y'=z、z'=−y。可编辑性来自显式参数,而不是自动学习 texture。外部资产库的共享存储不计入每个 JSON 时,压缩率会很高;系统部署应把资产字典作为公共开销列出。
来源:primitive_transformer.py、infer.yml、infer.py。审阅当前公开源码,没有执行外部代码或加载 checkpoint。
08 · 指标协议:几何像不像,与人类拆分像不像
| 指标 | 测量内容 | 盲点 |
|---|---|---|
| CD ↓ | 两组表面点云的最近邻误差 | 不是一一匹配,不能直接保证语义部件划分 |
| EMD ↓ | 点集分布搬运/匹配成本 | 依赖采样、下采样与库求解;公开 eval 随机取各 1000 点 |
| Hausdorff ↓ | 最坏最近邻误差 | 对离群点和遗漏极敏感;MP 在主表更优 |
| Voxel-IoU ↑ | 点云 voxel 化后交并比;论文写 32³ | 公开代码是 floor(points/(1/32)) 的占用集合,不做封闭实体内部填充 |
| RI ↑ | 点对是否被一致地分到同一/不同实例 | 大量不同部件点对可能主导平均,需结合其他指标 |
| VOI ↓ | 两个分区的信息差异 | 依赖粒度,不能孤立当几何误差 |
| SC ↑ | 分割覆盖质量 | 需要人工实例标签;ShapeNet 未提供对应 primitive 标签 |
分割协议不是直接逐基元对号入座:先在真值 mesh 采点,再从预测基元最近邻转移实例标签,比较两个分区。几何误差会影响标签转移,因此分割指标既反映结构,也受表面匹配污染。没有提供完全独立的语义 part 标注。
eval.py 用 point_cloud_utils 计算几何指标,EMD 下采样未在该脚本设置随机 seed。sample.py 默认从导出的 GLB 采 10000 点,使用 mesh_to_sdf 扫描路径,scan_count=100、scan_resolution=400,并有随机采样与异常跳过;因此复现要记录成功文件数,不能只在成功输出上取平均而不披露失败样本。
原论文“32³ voxel”与公开代码固定 voxel_size=1/32 的等价性依赖物体归一化边长;若坐标范围实际 [-1,1],每轴可跨 64 个格。本文不擅自判为指标错误,而是要求检查 test point clouds 的真实尺度,不能在没有数据运行时声称完全等价。
09 · 全部主表、基线公平性与结果解读
原 Table 1
| Method | CD \(\downarrow\) | EMD \(\downarrow\) | Hausdorff \(\downarrow\) | Voxel-IoU \(\uparrow\) |
|---|---|---|---|---|
| EMS (Liu et al., 2022) | 0.1062 | 0.0840 | 0.338 | 0.259 |
| MP (Liu et al., 2023b) | 0.0546 | 0.0515 | 0.120 | 0.201 |
| Ours | 0.0404 | 0.0475 | 0.158 | 0.484 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
原 Table 2
| Method | RI \(\uparrow\) | VOI \(\downarrow\) | SC \(\uparrow\) |
|---|---|---|---|
| EMS (Liu et al., 2022) | 0.696 | 3.520 | 0.280 |
| MP (Liu et al., 2023b) | 0.821 | 3.793 | 0.254 |
| Ours | 0.892 | 2.296 | 0.409 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
对比优化型 EMS 与 Marching-Primitives,本文 CD 从 MP 的 0.0546 降到 0.0404,约降低 26.0%;EMD 从 0.0515 降到 0.0475,约降低 7.8%;IoU 从 0.201 提升到 0.484(绝对 +0.283)。但 Hausdorff 从 MP 的 0.120 变为 0.158,约差 31.7%。这揭示“整体像、人类部件合理”与“最坏点误差最低”的目标并不完全一致。
分割上,RI 0.892、VOI 2.296、SC 0.409 均优于两者。MP 的 RI 0.821 高于 EMS 0.696,却有更差 VOI 3.793 对 3.520、SC 0.254 对 0.280,说明不同指标捕捉不同的过分割结构,不能只挑一个 RI 讲一致故事。
原 Table 3
| Method | CD \(\downarrow\) | EMD \(\downarrow\) | Hausdorff \(\downarrow\) | Voxel-IoU \(\uparrow\) |
|---|---|---|---|---|
| Chair subset of HumanPrim | ||||
| (Tulsiani et al., 2017) | 0.2512 | 0.1835 | 0.420 | 0.041 |
| (Paschalidou et al., 2019) | 0.1438 | 0.1088 | 0.332 | 0.095 |
| Ours | 0.0343 | 0.0458 | 0.136 | 0.550 |
| Chair category of ShapeNet | ||||
| (Tulsiani et al., 2017) | 0.2282 | 0.1667 | 0.411 | 0.046 |
| (Paschalidou et al., 2019) | 0.1343 | 0.1038 | 0.285 | 0.094 |
| Ours | 0.0553 | 0.0588 | 0.190 | 0.322 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
原 Table 4
| Method | RI \(\uparrow\) | VOI \(\downarrow\) | SC \(\uparrow\) |
|---|---|---|---|
| (Tulsiani et al., 2017) | 0.740 | 3.097 | 0.335 |
| (Paschalidou et al., 2019) | 0.660 | 3.346 | 0.274 |
| Ours | 0.931 | 1.499 | 0.578 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
HumanPrim Chair 的 59 例中,本文 CD 0.0343、IoU 0.550;ShapeNet Chair 的 1317 例中,CD 0.0553、IoU 0.322。ShapeNet 上相对 pretrained category-specific 基线仍有优势,但性能相对 HumanPrim 下降,符合域差异。ShapeNet 没有对应人工 primitive 标签,因此不报告 RI/VOI/SC;不能把缺失指标当默认完美。
| 基线 | 表示与训练条件 | 比较目的与不完全公平之处 |
|---|---|---|
| EMS | superquadric,优化型拟合 | 测试几何拟合与人类监督的差别;单模型运行耗时和重启预算未统一报告 |
| Marching-Primitives | superquadric,迭代优化 | 最坏轮廓拟合较好,但重叠/碎片可伤害 IoU 和分割 |
| Tulsiani 2017 | 预训练单类别 cuboid 方法 | 词表更窄、数据与架构较早,不构成现代同规模 AR 控制组 |
| Paschalidou 2019 | 预训练单类别 superquadric 方法 | 曲面表达较强,但类别范围及监督不同 |
| PrimitiveAnything | HumanPrim 人工监督,多类型、多类别 | 优势同时来自数据、表示和生成架构,需要额外控制实验拆分贡献 |
作者称未在 ShapeNet 训练;这支持测试域泛化,但输入 encoder 是预训练 Michelangelo,且 HumanPrim 数据来源/近重复关系未完整披露,不能把结果扩张为“所有组成部分均未接触任何相关数据”。





Figure 4/6 为 HumanPrim 优化型对比;Figure 7 为 HumanPrim Chair;Figure 8 为 ShapeNet Chair;Figure 9 为 Objaverse 定性泛化。本文颜色按 primitive 类型,EMS/MP 颜色按实例;颜色含义不同,不应把颜色一致直接当分割更一致。所有原面板保留,定性图不取代完整量化协议。
10 · 消融、旋转表示与用户研究
原 Table 5
| Method | CD \(\downarrow\) | EMD \(\downarrow\) | Hausdorff \(\downarrow\) | Voxel-IoU \(\uparrow\) |
|---|---|---|---|---|
| w/o ambiguity-free param. | 0.0564 | 0.0584 | 0.204 | 0.414 |
| w/o cascaded decoding | 0.0558 | 0.0586 | 0.243 | 0.458 |
| w/o Chamfer Distance loss | 0.0440 | 0.0514 | 0.174 | 0.475 |
| Ours | 0.0404 | 0.0475 | 0.158 | 0.484 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
去掉 ambiguity-free parameterization,CD 0.0564(相对完整 0.0404 恶化约 39.6%),IoU 0.414;去掉 cascaded decoding,CD 0.0558、Hausdorff 0.243(完整 0.158),支持级联降低严重错位;去掉 CD,CD 0.0440、IoU 0.475,收益较小但全部指标向好。
这些实验保持其余配置相同,是比跨方法比较更强的组件证据。不过没有多 seed 方差和训练曲线,无法量化稳定性;“每项 essential”应理解为当前配方中有效,而非所有替代架构都必须使用同样设计。

原 Table 7
| Representation | CD \(\downarrow\) | EMD \(\downarrow\) | Hausdorff \(\downarrow\) | Voxel-IoU \(\uparrow\) |
|---|---|---|---|---|
| Quaternions | 0.0704 | 0.0684 | 0.280 | 0.383 |
| Rotation Vector | 0.0426 | 0.0494 | 0.163 | 0.477 |
| Euler Angles | 0.0404 | 0.0475 | 0.158 | 0.484 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
四元数 CD 0.0704,rotation vector 0.0426,Euler 0.0404。附录认为数据多数近重力对齐,使 Euler 角方差小且可解释,因此表现最好。这是本数据/量化/网络组合的经验结果。四元数可以归一化、也可处理双覆盖;连续旋转表示有成熟替代,不能将作者对 SVD/四元数的动机描述升级为其数学上普遍不适用。
原 Table 6
| Method | Geometric Similarity | Anthropomorphism | Editability |
|---|---|---|---|
| EMS | 2.16 | 2.18 | 2.17 |
| MP | 3.55 | 3.09 | 3.23 |
| Ours | 4.17 | 4.18 | 4.22 |
完整保留原表全部方法行、指标列与分组。固定 v1 原表
用户研究为 30 人(15 female、15 male),20 个随机选的 Objaverse 物体,对 geometric similarity、anthropomorphism、editability 做 1–5 Likert 评分。本文 4.17/4.18/4.22,对 MP 3.55/3.09/3.23,分别 +0.62/+1.09/+0.99;对 EMS 2.16/2.18/2.17 优势更大。Anthropomorphism 在这里是“符合人类抽象直觉”,不是生成拟人角色。
Reviewer:未报告置信区间、显著性检验、呈现随机化/盲测细节或编辑任务完成时间;editability 是主观评分,不是已验证的实际建模效率提升。30×20=600 个参与者-物体评价场景,不等于 600 名独立参与者,也不能把重复评分当独立样本做显著性夸大。

附录用 OpenShape 的 pointbert-vitg14 提取点云特征,按 cosine similarity 检索最相近训练形状。Figure 12 展示测试输入、生成结果、检索训练例;它是有价值的近邻检查,但特征最近邻不保证找到几何最接近或重复数据,更不是完整的泄漏审计。这里使用 OpenShape 只为分析,不是核心生成条件编码器。
11 · 文本/图像应用、编辑与压缩


图像路线为 image→TRELLIS→3D shape→点云→PrimitiveAnything;文本路线为 prompt→SDXL→Rembg→TRELLIS→点云→PrimitiveAnything。上游失败、背景去除误差或薄结构缺失会传给基元装配。论文提供演示但没有完整公开 prompt 集、seed、SDXL sampler、TRELLIS 采样设置,因此不能把页面上的通用示意文字伪装成复现提示词。
用户能直接编辑单个实例的类型、位置、姿态和尺寸,这是与密集网格相比的接口优势。但任意编辑可能破坏连接、对称和比例,模型没有实时约束求解器。图中颜色只是类别/实例可视化,原始外观可通过 back-projection 或 nearest-neighbor matching 转移,但直接 texture generation 被作者明确列为未解决问题。
正文称相对传统 mesh 存储节省超过 95%,但未提供独立字节统计表、基准 mesh 复杂度、压缩编码或资产字典计费方式。若 n 个基元各存一个类型与九个连续值,数据量大致随 n 线性增长;这个解释不能代替论文没有公布的严格 benchmark。
官方 README 特别指出,demo 为改善细结构会使用 marching cubes 与 dilation,且不同于 testing/evaluation。本次未取得 demo.py 完整源码,具体栅格分辨率、膨胀参数与调用位置未核实;仅将官方说明作为边界,绝不虚构参数或把 demo preprocessing 算进表格协议。
12 · 局限与 Reviewer 评审

已由作者明确承认的局限
- 环形孔洞等 OOD 拓扑难以表示,受三类词表和训练分布限制;扩词表只是建议,没有扩展实验。
- 人工风格不一致,有人用更多基元覆盖形状,可能引入过分割偏好。
- 离散化导致精度损失与相邻部件连接问题;没有结构性拓扑/接触约束。
- 没有物体级 symmetry constraints,可出现本应对称物体的不对称分解。
- 不生成纹理;只有几何抽象,与外观建模分开。
- 没有显式多层 abstraction-level 监督;可从 primitive count 推断粒度是未来方向。
研究价值
把多类型基元变成紧凑序列,使用预训练形状条件、人工装配标签、参数规范化与级联属性分布,构成了可迁移的生成范式。它强调人类可编辑表示,不仅把三维资产当渲染图。数据、用户研究、几何和分割多种证据互相补充,方向比单纯优化 CD 更贴近创作工具。
需要补强的证据
- 数据与架构贡献分离:同 HumanPrim 上训练现代并行回归、集合预测、AR,无 canonicalization/不同词表的控制组。
- 完整复现:公开训练 split、数据许可、canonicalization 实现、训练脚本及实际 checkpoint 对应配置。当前 12 层/6 层、180/181 的差异必须澄清。
- 结构指标:接触图、缝隙、重叠率、对称误差、primitive count 偏差、长序列 error accumulation,不能只用平均表面距离。
- 公平预算:固定 primitive count 或给质量-数量曲线,对 EMS/MP 报告优化重启与时长;学习模型报告实际推理延迟与显存。
- 人类实验:测用户完成指定编辑任务的时间、操作次数和成功率,并报告盲测与统计区间。
- 更严谨泛化:按类别、几何近重复和拓扑做 held-out splits,检索不能替代去重审计。
与 GRASS 类层次树、medial skeletal representation、mesh simplification 的差别是输出的组织层次与表达粒度:本文是显式 primitive instance 序列,没有学习语义树或骨架,也不只是删减原 mesh 顶点。其声称“捕捉层次/语义”应理解为分解结果的经验性质,而非模型显式输出了完整层次结构。
13 · 对 Procedural Material Generation 的可操作延伸
以下均为 Research Extension,本文未验证:PrimitiveAnything 最值得迁移的是“等价表示规范化 + 对象级 token + 属性级级联 + 执行后的几何/渲染监督”。但几何基元列表不是材质节点图,三类资产也不是可无限扩展的 shader 语言。
A. 材质程序的等价表达规范化
同一个材质外观可能来自多种节点顺序、交换律输入或参数组合,类似 primitive 对称性带来的标签歧义。可对无副作用交换律节点排序、统一单位与参数范围、对等价子图做 canonical hash,再建立稳定拓扑序。但不能把“渲染相似”当严格程序等价;纹理坐标、边界条件、色彩空间与精度可能让看似交换的运算不再等价。
B. 类型→连边→参数的级联解码
几何中的 c→t→r→s 可迁移为 node type→合法输入端口→前驱节点→参数。但材质图需要 typed DAG,decoder 应屏蔽类型错误、未来节点引用和环;EOS 还需检查输出节点已连接,而不只是 sigmoid 大于阈值。先实现编译有效性再追求渲染匹配。
\[P(G\mid I)=\prod_{i=1}^{T} P(c_i\mid H_i)\, P(e_i\mid H_i,c_i,\mathcal V_i)\, P(a_i\mid H_i,c_i,e_i),\quad H_i=(I,G_{\lt i}).\]这里 \(\mathcal V_i\) 是合法端口/前驱集合,a 为参数。这是研究设计的概率分解,不是原文模型。相比把每个浮点和标点拆成独立 token,对象级编码更紧凑;但每个类型参数维度不同,须有类型化 schema,不宜照搬固定九维 SRT。
C. 参数分类加渲染反馈
\[\mathcal L_{\mathrm{program}} =\mathcal L_{\mathrm{type/edge/param}} +\lambda_R\,d(R(G),I^\ast) +\lambda_V\,\mathcal C_{\mathrm{valid}}(G) +\lambda_S\,\mathcal C_{\mathrm{simplicity}}(G).\]渲染损失对应本文几何 CD;有效性对应 compiler/执行器检查;简洁性避免大量冗余节点。若 renderer 不可微,不能声称 Gumbel-Softmax 会自动让完整流程可微:节点选择、外部执行和文件系统调用仍可能中断梯度。可改用候选重排、黑箱参数优化或训练可微代理,并单独测代理误差。
D. 带预算的局部重采与失败恢复
公开可选 CD-guided retry 提供一个具体启发:节点使渲染偏差或合法性变坏时局部重采,而不是全部重写。应避免只看单向覆盖损失导致“不断加节点”作弊,可同时限制节点数、重复子图、复杂度、材质物理约束与多光照误差。必须报告所有重试/渲染成本,不再把带搜索方案称作纯单次 AR 推理。
| 最小实验 | 对照组 | 主评价 |
|---|---|---|
| 固定节点库 canonicalization | 原始序列 / 规范序列;同模型同数据 | 编译成功、图等价重复率、渲染误差、学习曲线 |
| 级联类型/连边/参数 | 并行 head / 标量 token AR | 非法边率、材质复杂度分层质量、可编辑任务成功 |
| 多光照 renderer feedback | 仅 RGB 感知 / 单光照 / 多光照 | albedo 与光照纠缠、roughness/normal 合法性、换光照误差 |
| 至多五次局部 retry | 固定总执行预算随机采样与 beam | 端到端延迟、成功率、最佳质量;失败样本计入分母 |
最关键的负面风险是“人类风格监督”也会学习低效习惯;不同艺术家对 graph 粒度的偏好与 HumanPrim 基元数差异相似。建议将复杂度预算作为显式条件,并保留可解释的多级程序,而不是强行指定所有样本一个“唯一正确”结构。
14 · 来源、审阅范围与验收边界
- 固定原始 PDF与同版本 HTML:14 页全部阅读;15 个编号公式、15 张编号图、7 张编号表完整覆盖。
- 官方项目页:SIGGRAPH 2025、作者角色、方法与应用范围;视频未播放。
- 官方仓库:完整 primitive_transformer.py、infer.yml、infer.py、sample.py、eval.py 与 utils 中的量化实现已核查;只读源代码,未安装或执行模型。
demo.py 与 primitive_dataset.py 下载批次未完成,按要求未重试;因此没有声称核实 demo 预处理全部参数、训练 dataset loader 或完整训练流程。公开 README 的 demo marching cubes/dilation 说明通过官方页面核实,详细参数仍未验证。源代码为当前 main 快照,未定位与论文实验一一对应的历史 commit。
页面把 Paper Verified、Author Claim、Code Verified / Our Interpretation 与 Research Extension 分开。完整 Markdown 新增文本和合并候选仅用于下载验收;原笔记字节前缀及 PDF++ anchors 完整保留。浏览器 MathJax、图片加载与 1440/760/390px 布局验收按用户要求延后,静态检查不冒充浏览器验收;没有发布或合并进 vault。