Sandflow 在 Hugging Face 发布 Sand3D 数据集:将 106,094 件三维对象重写为可执行的 Python 程序并附带导出 USD 与渲染图,旨在让模型与人以可编辑的“物体配方”协作,但数据质量与训练收益尚未得到独立验证。发布强调数据与建模库而非已证明效果的生成模型,许可和来源需逐项核验,移动部件与几何相似度的测量仅为流水线自评。
Sandflow于2026年11月5日在Hugging Face发布Sand3D首批数据公告:106,094件三维对象被重新写成短Python程序,其中10,456件带有关节。每件对象同时提供程序、程序导出的OpenUSD文件和渲染图。团队希望让语言模型学习的不只是物体的表面,而是可读、可修改的部件结构与建模步骤。
这次发布的重点是数据与建模库,而不是一个已经证明效果的新三维生成模型。Sandflow提出的路径是:让人和模型在同一份“物体配方”上工作。不过,数据质量指标来自团队自己的重建流水线,不能据此认定模型训练收益或机器人仿真可靠性已经获得独立验证。
从表面坐标到可修改的“配方”
按照官方建模库的说明,sand3d建立在Blender的Python接口bpy之上,将轮廓、实体、编辑、坐标系、关节和装配组织成统一接口。它并非另造一个完全独立的三维引擎,而是在现有工具之上,为程序化建模提供更规整的表达方式。
在Sandflow的设计中,部件有名称,尺寸是参数,位置相对于父级坐标系定义,可动部件则明确声明关节。普通网格主要记录表面几何;这类程序还记录如何构建对象。团队举例说,修改参数后重新运行程序,就能重建相应形状;移除一个添加细节的步骤,可以保留其余结构。
程序的排列也服务于语言模型逐步生成代码的方式。公告介绍,入口函数先列出部件与装配关系,具体几何细节再分别展开。团队认为,“先结构、后细节”有助于模型先确定计划,再补全对象;但相关内部实验仍有待后续预印本详述,不宜将这一设计主张写成已经确立的训练结论。
十万余件对象来自哪里
根据公告中的清单,Sand3D包含五个来源的重建对象:Objaverse贡献66,887件;CAD子集包含24,495件,来自Zero-To-CAD和CADFS;Articraft贡献9,209件;AutoMate贡献3,169件,包括装配体与零件;NVIDIA SimReady贡献2,334件。它们被转换到同一套代码表达中,而不是仅把原有文件汇集到一起。
对象数量与可动对象数量需要区分。Articraft子集数据卡列出9,209件对象,其中9,139件带有关节,共33,444个关节。因此,Articraft子集的对象总数既不等于其可动对象数,也不等于Sand3D全体10,456件可动对象的数量。
CAD数据卡显示,记录除了程序与图像,还包含源对象标识、类别、关节数、重建分数、运行库版本、文件摘要和许可信息。训练集与验证集均已提供;CAD按完整形状族划分,Articraft则留出12个类别用于验证。这些划分有助于研究者设计评测,但数据集的发布本身并不代表模型已通过这些评测。
时间上,11月5日是此次公告的发表日期。CAD和Articraft数据页面均显示11月4日更新,不能把公告日期理解为每个文件首次公开的精确时刻。
“程序能运行”不等于完整还原现实
数据卡描述的生产过程是:智能体编写程序,运行后将生成形状与源对象比较,再反复修订。程序未能运行或未通过静态检查的对象不纳入数据集。团队同时明确,重建流水线的具体方法将在后续发布中介绍;目前公开的数据与建模库,不应被描述为整套重建系统已经完整开源。
几何相似度使用F-score衡量,距离阈值设为对象包围盒对角线的1%。公告列出的保留门槛是:Objaverse和静态SimReady对象为0.70,CAD零件及Articraft刚体程序为0.90;可动对象则要求每个部件达到0.90,并通过关节检查。数据卡强调,这些是流水线生成数据时对自身输出的测量,不是独立评审。
这个区别直接影响如何理解“高质量”。表面接近源对象、程序可执行、关节声明通过检查,是不同于真实环境中运动稳定、接触准确或任务成功的证据。尤其是Articraft数据卡说明,整件可动对象的分数是在静止姿态下计算的;不能将这个几何指标直接转述为动态仿真表现。
团队也在公告中限定了适用范围:当前主要覆盖家具、工具、机器、机械零件和家电等硬表面物体,尚未覆盖人物、动物和有机形状。达到筛选门槛的重建仍可能遗漏小细节。程序构建的拓扑以四边形为主,但本次发布的OpenUSD文件在导出时已经三角化,不能将两者混为一谈。
更短的代码,是否意味着更好的模型
代码长度是团队强调的另一项优势,但比较条件需要一并看。公告对30个CAD零件给出3.8倍的词元长度差异表述;当前官方测量说明则将Blender Python相对于sand3d的词元数量中位数比值列为4.0倍。两处数值不宜直接当作同一统计量互换。
测量页说明,统计使用o200k_base分词器,仅计代码,不计注释和文档字符串;sand3d程序为项目编写,Blender Python对照由语言模型生成,且30个对照程序中只有9个构建出了正确零件。这不是两组同等正确程序之间的纯粹效率测试,也不是端到端训练成本、生成成功率或推理速度的测量。
因此,这组结果更适合支持一个有限判断:在团队选取的样本和写法下,sand3d可以提供较紧凑的形状表达。它是否能让不同规模的模型更准确地生成、编辑或组合三维对象,还需要对应的训练实验与独立评测,而不只是比较代码长度。
允许商业使用,仍须逐对象看许可
Sand3D的数据与软件采用不同许可。数据卡将程序、渲染图和USD文件列为CC BY 4.0发布;建模库则采用Apache 2.0。数据卡同时要求保留源对象的许可与署名:如果重建结果构成对第三方对象的改编,上游许可仍然适用。
CAD子集还特别提醒,CADFS中的设计来自公开Onshape文档,原设计作者可能拥有源数据许可没有覆盖的权利。“公开可下载”和“无需再核对任何权利”并不是同一回事。对于准备训练模型或复用资产的团队,逐条记录中的来源、许可与修改声明,和几何质量一样,是采用前必须检查的内容。
Sand3D此次带来的具体进展,是把不同来源的对象变成可读程序,并将程序、导出资产和来源信息共同交付。按照团队已公开的材料,它为研究可编辑三维表示提供了数据基础;至于这种表示能在多大程度上改善模型训练和实际生产流程,仍有待进一步证据。