跳到正文
Keisuke· 来源· @KeisukeIshikawa · X·· 2 小时前精选AI 评分82
推荐理由

通过紧凑API降低AI生成3D模型的Token消耗,提供可编辑的机械结构构建方案。

正文 · AI 翻译

有人开发了一个 Python 库,让 Claude Code 能够在 Blender 中创建真正的 3D 模型。包括可动部件。

这不仅仅是根据文本提示生成的网格。

你可以描述一个机械物体,让 AI 编写一段简短的 Python 程序,最终得到一个各个组件都能移动的模型。

这个项目叫 sand3d,它的洗衣机演示很好地说明了为什么这很有趣。

整个洗衣机仅用 38 行 Python 代码定义。

它有一个柜体、一个旋转滚筒、一扇带玻璃和把手的门、一个洗涤剂抽屉和一个控制旋钮。

但巧妙之处在于,这些不仅仅是装饰性的网格。

门有一个铰链,定义了 143° 的运动范围。

滚筒可以连续旋转。

洗涤剂抽屉可以滑入滑出。

甚至连旋钮也有自己的旋转关节。

而且每个组件都以命名部分的形式存在于装配体中。

这很重要,因为传统的 Blender 脚本对于编码代理来说可能非常痛苦。

一个模型可能理解它需要创建一个带有四个孔、圆角边缘和特定厚度的支架。

但将其转换为原始 Blender Python 通常需要大量的几何运算、坐标和样板代码。

sand3d 给代理提供了一个更小的词汇表。

与其手动操作顶点,它可以描述如下操作:

创建矩形轮廓。
将其挤出为实体。
在预定义位置添加孔。
圆化选定的边缘。
使用关节连接可动组件。
导出完成的装配体。

根据项目自身的测量,单个部件所需的 token 比使用 Blender Python、CadQuery 或 FeatureScript 的等效实现少 2–6 倍。

整个 API 文档大约占用 3,600 个 token。

这意味着你可以将文档提供给 Claude Code,而无需用庞大的 CAD 框架填满其上下文窗口。

而且由于模型被定义为 Python 程序,它们是可重现且可编辑的。

想改变支架的宽度?更改一个参数即可。

想让门开得更大?修改关节限制。

想要完全不同的装配体?让代理重写相关部分。

导出选项也比预期的更有趣。

STL 用于 3D 打印。

GLB 用于浏览器和游戏引擎。

URDF 用于机器人和 MuJoCo、PyBullet 等仿真环境。

USD 用于 OpenUSD 管线。

OBJ 用于标准网格工作流。

一个重要的区别是:这不是保证完美几何形状的魔法文本到 3D 模型。

它是一个编程接口,使 AI 代理更容易进行程序化 3D 建模。生成的代码和 resulting 几何形状仍需检查,特别是对于物理制造而言。

但我真的很喜欢这个方向。

与其训练另一个巨大的生成模型来直接生成 3D 资产,不如给编码代理一个紧凑的几何语言,让它一步步构建对象。

结果不仅仅是一个你可以观看的模型。

它是一个你可以检查、修改、动画制作并可能制造的模型。

开源,Apache 2.0 许可证。

来源:Keisuke · x.com