sand3d 是一个用于用 Python 编写 3D 对象的库,目标读者包括语言模型。它把 3D 模型表达为短程序,在 Blender 的 bpy 之上组织轮廓、实体、编辑、坐标系、关节和装配。程序描述一个形状是“如何”按零件、按名称构建出来的,因此模型可以用几百个 token 写出一个对象,人也可以直接阅读。
项目定位与解决的问题
传统 3D 建模代码往往依赖手工计算的坐标和不直观的几何操作。sand3d 试图把零件、边和面通过名称来引用,而不是让用户或 LLM 手动计算坐标。它强调程序的可读性和短小,使语言模型更容易生成结构化 3D 程序,也让人能按零件逐段检查模型。
核心特点
- 短程序表达:README 称同一个零件相比 Blender Python、CadQuery 或 FeatureScript,可少用 2 到 6 倍 token。
- API 可整体放入提示词:完整 API 约 3,600 token,便于作为 LLM 的系统提示。
- 按名称引用:零件、边和面通过名称访问,无需手算坐标。
- 确定性构建:同一个程序构建出逐位相同的网格。
- 面向装配:支持关节和姿态,示例中一台前开门洗衣机由 38 行代码描述,包含柜体、滚筒、门体、玻璃、把手、洗涤剂抽屉和旋钮,以及四个关节。
功能范围
sand3d 将所有操作放在扁平的 s3d. 接口下,覆盖多个功能族:
- 轮廓:
rect、circle、slot、polygon、poly、arc、spline、superellipse、text、offset、stroke等。 - 实体与路径:
extrude、revolve、sweep、loft、wire、helix、box、cylinder、tube、sphere、torus、dome等。 - 编辑:
cut、join、intersect、split、hole、pocket、fillet、chamfer、shell、dent等。 - 坐标系与放置:
Frame、face、edge、bbox、local、at、transform、grid、ring、along、snap。 - 关节与姿态:
joint、pose、seat。 - 装配与导出:
group、assembly、attach、export、units、fingerprint等。 - 零件与材质:
gear、knurl、thread、material。
README 特别说明,sand3d 没有 chair()、table() 这类类别级动词;一个类别对应的是用 sand3d 写成的程序。
导出格式
模型可以通过一次 export 调用导出,文件扩展名决定格式,长度单位为米。支持的格式及用途如下:
| 格式 | 携带内容 | 适用场景 |
|---|---|---|
| GLB | 网格、材质、每个节点 extras 中的关节,当前姿态 | 网页、查看器、游戏引擎 |
| URDF | 每个运动零件一个 link、关节及限制,静止姿态,旁边生成 OBJ 网格 | ROS、PyBullet、MuJoCo、Isaac |
| USDA | OpenUSD 中的同一棵树(UsdGeom、UsdPhysics),含材质 | Omniverse、Isaac Sim、USD 管线 |
| IFC | 零件树作为 IFC4 项目:装配、每个零件一个 proxy、三角化面集、材质 | Revit、ArchiCAD、Tekla、BIM |
| OBJ、STL | 仅网格,当前姿态;OBJ 为 Y 轴向上,二进制 STL 为 Z 轴向上 | 任意 3D 工具、切片软件 |
另外,.usd、.usdc、.usdz 需要通过 USD 自带工具(usdcat、usdzip)从 .usda 转换生成。README 也提到 Revit 的 .rvt 只能由 Revit 自己写入,因此 export 对 Revit 场景提供 .ifc,这是 Revit 可打开和链接的开放标准。IFC 导出当前姿态且不包含关节;其 GlobalId 依赖几何与放置,编辑或移动零件可能改变 ID,不同模型中的相同零件也可能共享同一个 ID,因此不宜用它在多次导出间追踪零件。
安装与运行环境
sand3d 推荐 Python 3.13,也支持 Python 3.11。Blender 作为 bpy 模块随环境提供:Python 3.13 对应 5.2 LTS,Python 3.11 对应 4.5 LTS;CI 运行 bpy 5.2。README 说明 bpy 没有 Python 3.12 的 wheel,从 5.2 起也不支持 Intel Mac,因此这些环境应使用 Python 3.11。
给 LLM 使用
把 docs/api.md 放入系统提示词,即可提供词汇规则、全部签名和示例,约 3,600 token;llms.txt 可引导模型找到该文件。对于多零件对象,文档中的指南给出装配程序的八条规则:先规划,再细节,最后零件。
数据集与示例
项目在 Hugging Face 上发布了五组 sand3d 程序数据集,均采用 CC BY 4.0 许可,来源包括 Objaverse、公开 CAD 模型、Articraft、NVIDIA SimReady 和 AutoMate,分别对应日常物体、机械零件、带关节的铰接物体、仿真就绪资产和机械装配。读者可以在 explorer 中浏览,或在 collection 中查看全部五组。
README 提到,快速入门的每个动词都有可运行代码和渲染结果,gallery 提供可逐个关节播放的对象,API 文档列出全部签名;示例程序位于 docs/examples/ 和 programs/。
适用人群与注意事项
sand3d 适合希望用代码生成 3D 模型、需要把建模能力交给 LLM 的开发者,以及需要将零件和装配导出到 GLB、URDF、USD、IFC 等格式的工程或仿真场景。需要注意,项目主要语言标记为 HTML,但核心是 Python 库;运行依赖 Blender 的 bpy,因此环境选择受 Python 版本和平台限制。使用 IFC 的 GlobalId 时不要将其作为跨导出追踪零件的稳定标识。
项目主页:https://github.com/Sandflow-ai/sand3d
项目地址:sand3d
相关推荐
Yogurt:本地运行的私有 AI 会议笔记,Granola 的开源替代
Pinky:让 AI 代理安全地操作你的 iPhone 或 Android 手机
知了 Cicada:给任意会议和直播加实时双语字幕与同传的免费开源工具
Graphify:把代码库变成可查询知识图谱的 AI 编程助手技能
Open WebUI:可离线自托管的 AI 界面,统一连接 Ollama 与 OpenAI 兼容 API
Dify:在可视化画布上搭建 LLM 应用与 Agentic 工作流
The Agency:把一支完整的 AI 专家团队装进你的开发工作流
Hugging Face Transformers:统一文本、视觉、音频与多模态模型的模型定义框架
最近更新
Yogurt:本地运行的私有 AI 会议笔记,Granola 的开源替代
Yogurt 是一款免费开源的本地 AI 会议笔记工具,支持 Mac、Windows 和 Linux。它不向会议派机器人,直接录制麦克风和系统声音,使用 whisper.cpp 转录、llama.cpp 运行本地模型生成摘要和问答,音频与笔记留在本机。
sand3d:面向 LLM 的 Python 3D 建模库,用短程序描述零件与装配
sand3d 是一个面向 LLM 的 Python 3D 建模库,用短程序按零件描述形状,支持关节、装配和多种格式导出,API 约 3,600 token,适合代码生成与仿真管线。
Pinky:让 AI 代理安全地操作你的 iPhone 或 Android 手机
Pinky 是一个 Go 编写的开源桌面应用,让 Claude Code、Codex、Cursor 等 MCP 代理安全地操作真实 iPhone 或 Android 手机。审批由网关强制执行,支付、删除等高风险操作需你确认,银行与密码类应用默认对代理不可见,每一步都有截图和录屏记录。
知了 Cicada:给任意会议和直播加实时双语字幕与同传的免费开源工具
知了 Cicada 是一款基于 Swift/SwiftUI 开发的免费开源实时字幕与会议纪要工具,支持 macOS、Windows、Linux 和 Android。它直接监听系统音频,为任意会议软件或直播提供双语字幕、同声传译和 AI 会议纪要,Apple 芯片 Mac 上语音识别全程本地完成。
Graphify:把代码库变成可查询知识图谱的 AI 编程助手技能
Graphify 是一个面向 Claude Code、Cursor、Codex、Gemini CLI 等 AI 编程助手的开源技能,用 tree-sitter 在本地把代码、文档、SQL schema、配置和 PDF 构建成可查询的知识图谱,支持查询、路径追踪和概念解释,且不依赖向量库。
Open WebUI:可离线自托管的 AI 界面,统一连接 Ollama 与 OpenAI 兼容 API
Open WebUI 是一个可离线自托管的 AI 交互平台,支持通过 Ollama 连接本地模型与 OpenAI 兼容 API,提供 Docker、Python 及桌面应用等多种运行方式。

Dify:在可视化画布上搭建 LLM 应用与 Agentic 工作流
Dify 是一个开源的 LLM 应用开发平台,把可视化 AI 工作流、RAG 管道、Agent、模型管理和 LLMOps 整合在同一工作空间,支持云端、VPC 或自托管部署,帮助团队从原型走向生产。
The Agency:把一支完整的 AI 专家团队装进你的开发工作流
The Agency 是一个开源的 AI 智能体角色合集,每个智能体都带有明确的专业方向、工作流程和交付物。它面向 Claude Code、Cursor、Codex、Gemini CLI 等工具,提供按部门组织的专家角色,并附带桌面安装器,可一键安装、按团队筛选。
Hugging Face Transformers:统一文本、视觉、音频与多模态模型的模型定义框架
Hugging Face Transformers 是一个覆盖文本、视觉、音频、视频和多模态的模型定义框架,支持推理与训练,并通过统一 API 连接主流训练框架和推理引擎。
n8n:可视化搭建与自定义代码结合的 AI 工作流自动化平台
n8n 是一个 fair-code 工作流自动化平台,支持可视化画布与 JavaScript、Python 代码混合搭建,可自托管或云端部署,并提供 AI 工作流、多步骤 agent、大量集成和工作流模板。本文介绍其功能、使用方式、运行环境与适用场景。






