洞察

sand3D:可作为代码读取和编辑的 3D 资产

sand3D 赋能语言模型使用紧凑的 Python 词汇创建可编辑的 3D 资产,并利用 Blender 的 bpy 进行参数化建模。

sand3D:可作为代码读取和编辑的 3D 资产

重点与结果

sand3D 为语言模型提供了一套紧凑词汇,用于在 Python 中构建 3D 对象。该项目由 Sandflow 的 Thibault Neveu 和 Andréa Loy 开发,通过 Blender 的 bpy 将程序转换为命名部件、材质和关节组件。修改某个尺寸并重新运行程序即可重建资产。公开版本将建模库与数据集结合在一起;它不提供独立训练的文本生成 3D 模型。官方仓库。

五张数据集卡片列出了 66,887 个 Objaverse 对象、24,495 个 CAD 对象、9,209 个 Articraft 对象、2,334 个 SimReady 对象和 3,169 条 AutoMate 记录:总计 106,094 条,其中包括 10,456 个关节对象。AutoMate 的数量包括 2,297 个独立部件和 872 个组件。每条记录都将可执行代码与渲染图和导出的 OpenUSD 资产配对。这是重建源资产的集合,而不是 100,000 个新设计的机构。官方数据集。

https://external-v2fun-data-hk-1.oss-accelerate.aliyuncs.com/temp/2026/11/10/1_1794295500887.PNG

该仓库的词元比较使用 o200k_base,并排除注释和文档字符串。在 30 个 CAD 部件上,LLM 编写的 Blender Python 的基线与 sand3D 比率中位数为 4.0×;在 17 个 CadQuery 程序上为 2.3×;在 13 个 FeatureScript 程序上为 6.0×;在 12 个 Articraft 程序上为 2.0×。这些是规模较小、来源不同的比较,比较对象是经过整理的 sand3D 程序;Blender 基线中只有 9/30 个构建出了正确部件,而 Articraft 还代表了动态特性。它们支持紧凑性方面的主张,但不代表生成质量得到普遍提升。评估详情。

工作原理

在创作过程中,工作流如下:向 LLM 提供 API 或直接编写 Python;描述组件及其参数;构建并放置各个部件;声明关节和材质;在 bpy 中执行程序;检查、修改并导出。约 3,600 个词元的 API 可以放入提示词中。推荐的程序布局首先说明组件规划,然后分别实现各个部件,使尺寸和放置关系保持清晰。可编辑表示形式是可执行的几何代码和场景层级;该库不实现潜在编码或扩散去噪。编写指南;API。

几何词汇从 2D 轮廓扩展到实体:rect 和 circle 定义截面;extrude、revolve、sweep 和 loft 构建体积;cut、pocket、shell 和 fillet 对其进行编辑。Frame 对象描述位置和方向,因此组件可以放置在命名面或局部锚点上,而不必使用一长串世界坐标。group 在一个父对象下保留独立网格和材质;join 执行融合;assembly 向分组根节点添加命名锚点。这些区别保留了哪些部件属于同一整体、哪些部件仍可独立编辑的信息。组件实现。

洗衣机示例具体展示了其机械结构:机柜支撑滚筒、包含环、玻璃和把手的门、抽屉以及旋钮。将这些部件放置在静止位置后,joint 记录父对象、枢轴、轴、类型和允许范围。门可在 0–143° 范围内旋转,抽屉可滑动 0–200 mm,滚筒和旋钮则可连续旋转。pose 验证请求的值,并通过正向运动学传递变换;它不会重新生成几何体。seat 会移除插入部件在静止状态下所占据的体积,而不是计算其完整运动包络。示例;关节实现。

https://external-v2fun-data-hk-1.oss-accelerate.aliyuncs.com/temp/2026/11/10/2_1794295546294.PNG

数据集生产增加了一个代理式重建循环:编写代码、执行代码、将生成的表面与现有源资产进行比较,然后修改代码。作者尚未发布该流程的完整方法。数据集 F-score 使用包围盒对角线 1% 的容差。Objaverse 和静态 SimReady 的接受阈值为 0.70,CAD 和刚性 Articraft 为 0.90,关节资产则要求每个运动部件达到 0.90 且关节正确。这些是流程报告的质量筛选条件,而不是独立测量的测试结果。执行失败或静态检查失败的程序会被排除。数据集方法。

应用、可用性与未来方向

这种表示形式适用于可编辑的资产变体、交互式机构以及基于 LLM 的 3D 创作研究。GLB 会将当前姿态、材质和关节元数据导出到节点 extras 中;通用查看器需要额外逻辑才能操作这些关节。URDF 和 USDA 会保留机构的静止状态,其中 USDA 使用 UsdGeom 和 UsdPhysics。OBJ/STL 只携带网格。导出时会将长度缩放为米。质量、摩擦和驱动参数仍不在该库的动力学描述范围内,因此仍需开展仿真集成工作。导出实现。

该库采用 Apache-2.0 许可证;数据集发布版本采用 CC BY 4.0,同时保留源许可证和署名要求。目前的覆盖范围集中于硬表面对象,重建可能会遗漏细节。作者将有机形状确定为未来工作方向,候选新增内容包括隐式混合、控制笼细分、可变截面扫掠和放样、带蒙皮的骨架以及程序化位移。他们还承诺拓展更多领域并发布即将推出的预印本;这些仍属于计划。本评测于 2026 年 11 月 6 日检查了官方文档和提交版本为 0d589a5、版本号为 1.6.2 的源代码;未独立运行基准测试。官方发布与局限。

常见问题

安装 sand3D 后,我会得到一个文本生成 3D 模型吗?

安装的是一个 Python 建模库。LLM 或用户必须使用其 API 编写程序;bpy 会执行这些程序以构建资产。数据集提供代码示例,而不是独立训练的生成器。来源。

如何创建不同尺寸的资产?

修改程序所公开的尺寸,然后重新运行程序。放置关系和命名部件使这类更改可以被检查。只有程序中实际编码的关系会自动更新,因此请检查重建结果。来源。

导出的机构可以立即用于物理仿真吗?

URDF 和 USDA 会携带关节结构,但仿真仍需要质量、摩擦和驱动等动力学参数。GLB 会将关节元数据存储在 extras 中;应用程序必须解析这些元数据,才能为机构设置动画。来源。

相关文章