Repolode
Sandflow-ai

Sandflow-ai/sand3d

基于 Blender bpy 的 Python 3D 建模库,用简短的命名零件程序描述物体,便于 LLM 生成。

Star
724
Fork
83
未关闭 Issue
2
最近提交
昨天

这是什么?

sand3d 让你用一段简短的 Python 程序描述三维物体,程序由轮廓、实体、编辑操作、坐标框架、关节和装配体组成,底层运行在 Blender 的 bpy 模块之上。零件、边和面通过名称引用,而不是手工计算坐标,同一程序每次生成的网格完全一致。

通过统一的 export 调用可导出 GLB、URDF、USDA、OBJ 和 STL 格式,USD 系列格式可借助 USD 自带工具生成。带运动范围的关节(铰链、滑动、连续旋转)会保留到导出文件中,因此洗衣机门和抽屉这类可动物体可以直接编写并导出。

项目提供约 3600 个 token 的紧凑 API 参考,适合放进 LLM 的系统提示词中,并附有多零件装配的编写指南。此外,基于 Objaverse、CAD 模型和 NVIDIA SimReady 等来源的 sand3d 程序数据集已发布在 Hugging Face 上,采用 CC BY 4.0 协议。

核心功能

  • 01通过命名的轮廓、实体、编辑操作和坐标框架构建物体,而非直接写坐标。
  • 02为可动物体定义类型、轴向和运动范围的关节。
  • 03一次调用即可导出 GLB、URDF、USDA、OBJ 和 STL 格式。
  • 04提供体积紧凑的 API 参考,适合放入 LLM 系统提示词。
  • 05同一程序每次生成的网格完全相同。

适用场景

  • 让 LLM 通过简短的文本程序生成参数化三维零件。
  • 制作带关节的可动物体,并导出为 URDF 用于机器人或物理仿真。
  • 将程序化建模的结果导出为 GLB 或 USD,用于查看器或 Omniverse 流程。
  • 构建可读的三维程序数据集,用于训练或评估模型。

快速上手

  1. 1

    使用 pip 安装 sand3d(需要 Python 3.13 或 3.11)

    pip install sand3d
  2. 2

    使用 sand3d API 编写程序,然后通过 s3d.export 导出为 GLB、URDF、USDA、OBJ 或 STL

使用前须知

  • bpy 没有 Python 3.12 的安装包;从 5.2 起也没有适用于 Intel Mac 的安装包,因此这些环境需要使用 Python 3.11。
  • Blender 以 bpy 模块的形式随安装包一起提供,依赖体积较大。

收录于专题

标签

常见问题

sand3d 是什么?
基于 Blender bpy 的 Python 3D 建模库,用简短的命名零件程序描述物体,便于 LLM 生成。 sand3d 让你用一段简短的 Python 程序描述三维物体,程序由轮廓、实体、编辑操作、坐标框架、关节和装配体组成,底层运行在 Blender 的 bpy 模块之上。零件、边和面通过名称引用,而不是手工计算坐标,同一程序每次生成的网格完全一致。
sand3d 可以免费使用吗?用的什么许可证?
sand3d 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
sand3d 还在维护吗?
活跃维护中。sand3d 最近一次提交是在 2026年11月6日。
sand3d 适合用来做什么?
让 LLM 通过简短的文本程序生成参数化三维零件。 制作带关节的可动物体,并导出为 URDF 用于机器人或物理仿真。 将程序化建模的结果导出为 GLB 或 USD,用于查看器或 Omniverse 流程。 构建可读的三维程序数据集,用于训练或评估模型。
sand3d 怎么安装和运行?
使用 pip 安装 sand3d(需要 Python 3.13 或 3.11): pip install sand3d 使用 sand3d API 编写程序,然后通过 s3d.export 导出为 GLB、URDF、USDA、OBJ 或 STL
在哪里获取 sand3d?
源代码和安装说明在 GitHub 上:https://github.com/Sandflow-ai/sand3d

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目