PAPER READING · SIGGRAPH 2025 · FIXED 2505.04622v1

PrimitiveAnything

Human-Crafted 3D Primitive Assembly Generation with Auto-Regressive Transformer|人工装配、等价参数规范化与可编辑三维生成

Jingwen Ye · Yuze He · Yanning Zhou · Yiqin Zhu · Kaiwen Xiao · Yong-Jin Liu · Wei Yang · Xiao Han

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 物体评分不能证明唯一正确的语义分解或普遍认知模型
原 Figure 1 · 多类别基元装配总览
原 Figure 1 · 多类别基元装配总览 · 固定原文

对原笔记的处理:保留全部用户正文、代码片段、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 · 完整方法框架
原 Figure 2 · 完整方法框架 · 固定原文

Figure 2 的四步是:人工装配规范化 → 点云条件编码 → 基元级自回归 Transformer → 属性级级联解码。两种顺序不要混淆:跨基元按空间排序;每个基元内部按类型→平移→旋转→尺度生成。

03 · 对称性规范化:为什么同一形状会有多个标签

一个 cuboid 先绕轴转 90°,再交换相应尺度分量,可以与原形状完全相同;180° 对称旋转也能产生几何等价的表示。若训练时同一几何对应多个不一致参数,离散回归容易出现模式混淆。规范化并不提升基元词表的几何表达能力,而是减少监督中的表示冗余。

原 Figure 3 · 尺度交换与旋转的等价歧义
原 Figure 3 · 尺度交换与旋转的等价歧义 · 固定原文
\[\mathcal R=\bigcup_{j=1}^{n_{\mathrm{axis}}} \left\{\operatorname{Rot}\!\left(v_j,\frac{2\pi k}{m_j}\right): k=0,\ldots,m_j-1\right\}.\tag{3}\]

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 对称阶数与轴交换
原 Figure 14 · cuboid 对称阶数与轴交换 · 固定原文

附录 Figure 14 给出 cuboid 的 x 轴例子:仅考虑纯几何旋转时 180° 重合,阶数为 2;把 90° 与 270° 后交换 y/z 尺度也计入,则阶数为 4。图中 360° 回到起点,是周期演示,不表示把同一身份变换重复算成第五个不同状态。

“ambiguity-free”应理解到什么程度

来源:固定 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 三轴
类型 embedding48三类资产索引的可学习向量
完整基元 concat48+48+48+48=192当前 embed_order=ctrs,随后 Linear(192,768)
单基元 token768隐藏通道宽度,与“有几个基元”无关
序列长度条件 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 test314 个高质量、artist-created 标注样本文中表述随机选择高质量样本;验证集与精确训练 split 数未单独列明
Chair 测试HumanPrim 59;ShapeNet test 1317学习型基线只支持特定类别;ShapeNet 无本文 primitive 真值分割标签
输入规范归一化到 unit cube,点云条件用 Michelangelo encoder公开配置平移范围 [-1,1],需按真实资产/数据规范核对单位
主干12 层、hidden 768;级联 MLP 两层、hidden 768released 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 · HumanPrim 类型与复杂度分布
原 Figure 13 · HumanPrim 类型与复杂度分布 · 固定原文
数据统计(原 Figure 13)比例
cuboid / elliptical cylinder / ellipsoid85.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 后 clamputils.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→768encode 与 init_dim 计算
投影到 sequence length 维度768 是 hidden width;序列长度随条件 token 和基元数变化张量 b×np×dim 与 decoder 输入
condition 与 transform 之间有 SOS应区分全局 shape condition C 与每基元类别 c;前缀是 point-cloud tokens→SOS→primitive tokensforward 的 shape_cond_with_cat 分支

以上不是修改或否定整份原笔记,而是对同一官方代码现状追加精确说明。原有 PDF++ 跨页选区、代码片段与块引用全部保留在合并候选的原始前缀中。

7.3 论文与公开配置的差别

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;不能把缺失指标当默认完美。

基线表示与训练条件比较目的与不完全公平之处
EMSsuperquadric,优化型拟合测试几何拟合与人类监督的差别;单模型运行耗时和重启预算未统一报告
Marching-Primitivessuperquadric,迭代优化最坏轮廓拟合较好,但重叠/碎片可伤害 IoU 和分割
Tulsiani 2017预训练单类别 cuboid 方法词表更窄、数据与架构较早,不构成现代同规模 AR 控制组
Paschalidou 2019预训练单类别 superquadric 方法曲面表达较强,但类别范围及监督不同
PrimitiveAnythingHumanPrim 人工监督,多类型、多类别优势同时来自数据、表示和生成架构,需要额外控制实验拆分贡献

作者称未在 ShapeNet 训练;这支持测试域泛化,但输入 encoder 是预训练 Michelangelo,且 HumanPrim 数据来源/近重复关系未完整披露,不能把结果扩张为“所有组成部分均未接触任何相关数据”。

原 Figure 4 · HumanPrim 优化型方法对比
原 Figure 4 · HumanPrim 优化型方法对比 · 固定原文
原 Figure 6 · 更多优化型基线比较
原 Figure 6 · 更多优化型基线比较 · 固定原文
原 Figure 7 · HumanPrim Chair 学习型基线比较
原 Figure 7 · HumanPrim Chair 学习型基线比较 · 固定原文
原 Figure 8 · ShapeNet Chair 学习型基线比较
原 Figure 8 · ShapeNet Chair 学习型基线比较 · 固定原文
原 Figure 9 · Objaverse 定性比较
原 Figure 9 · Objaverse 定性比较 · 固定原文

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”应理解为当前配方中有效,而非所有替代架构都必须使用同样设计。

原 Figure 11 · 三组组件消融可视化
原 Figure 11 · 三组组件消融可视化 · 固定原文

原 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 名独立参与者,也不能把重复评分当独立样本做显著性夸大。

原 Figure 12 · 测试形状、输出与训练近邻
原 Figure 12 · 测试形状、输出与训练近邻 · 固定原文

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

11 · 文本/图像应用、编辑与压缩

原 Figure 5 · 图像和文本输入的级联应用
原 Figure 5 · 图像和文本输入的级联应用 · 固定原文
原 Figure 10 · 更多文本/图像条件应用
原 Figure 10 · 更多文本/图像条件应用 · 固定原文

图像路线为 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 评审

原 Figure 15 · OOD 失败案例
原 Figure 15 · OOD 失败案例 · 固定原文

已由作者明确承认的局限

研究价值

把多类型基元变成紧凑序列,使用预训练形状条件、人工装配标签、参数规范化与级联属性分布,构成了可迁移的生成范式。它强调人类可编辑表示,不仅把三维资产当渲染图。数据、用户研究、几何和分割多种证据互相补充,方向比单纯优化 CD 更贴近创作工具。

需要补强的证据

  1. 数据与架构贡献分离:同 HumanPrim 上训练现代并行回归、集合预测、AR,无 canonicalization/不同词表的控制组。
  2. 完整复现:公开训练 split、数据许可、canonicalization 实现、训练脚本及实际 checkpoint 对应配置。当前 12 层/6 层、180/181 的差异必须澄清。
  3. 结构指标:接触图、缝隙、重叠率、对称误差、primitive count 偏差、长序列 error accumulation,不能只用平均表面距离。
  4. 公平预算:固定 primitive count 或给质量-数量曲线,对 EMS/MP 报告优化重启与时长;学习模型报告实际推理延迟与显存。
  5. 人类实验:测用户完成指定编辑任务的时间、操作次数和成功率,并报告盲测与统计区间。
  6. 更严谨泛化:按类别、几何近重复和拓扑做 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 · 来源、审阅范围与验收边界

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。