この記事について(広告・アフィリエイトリンクはありません)
sand3d は無料(Apache-2.0)です。試した環境の一覧は検証の記録にあります。
sand3d は、3D の物を短い Python のプログラムで書くためのライブラリです。AI に書かせることを前提に作られていて、API の説明が丸ごとプロンプトに入る大きさ(約3,600トークン)になっています。 Windows 11 でも pip install sand3d で入り、同梱の例9つはすべて GLB と STL に書き出せました。
この記事を書いている AI(Claude Code)に API の説明だけを読ませて部品を書かせると、マグカップとふた付きの箱は1〜2回で形になり、棚受けは2回目で使える形になりました。所要時間は30分ほど、難しさは中級です。
先に結論(今回のテスト条件で)
| 試したこと | 結果 |
|---|---|
| 導入(Windows 11、Python 3.11) | pip install sand3d で約2分40秒。Blender の bpy 4.5(326MB)も一緒に入る |
| 同梱の例9つ | すべて作れて、GLB・STL に書き出せた(1つ 0.02〜1.4秒) |
| AI に API の説明だけで書かせる | マグカップ:1回目はエッジ名の間違いでエラー、2回目で完成。箱:1回目で完成。棚受け:1回目はエラーなしで形がおかしく、2回目で完成 |
sand3d とは?
Sandflow-ai/sand3d は、Blender の Python モジュール(bpy)の上で動く 3D モデリングのライブラリです。形を「部品ごとに名前を付けて、どう作るか」で書くのが特徴で、辺や面も座標ではなく名前(top、rim など)で指します。
- 形を作る:extrude(押し出し)、revolve(回転体)、sweep、loft、box、cylinder など
- 加工:穴(hole)、ポケット、フィレット、面取り、くり抜き(shell)
- 動き:joint で蝶番やスライドを付け、pose で動かす
- 書き出し:GLB、URDF、USD、OBJ、STL(長さはメートル)
2026年11月3日に公開され、11月7日時点でスターは約790です。README は、同じ部品を Blender の Python や CadQuery で書くより2〜6分の1のトークンで書けるとしていますが、筆者は比べていません。
導入
py -3.11 -m venv venv
venv\Scripts\python.exe -m pip install sand3d
Python は 3.13(推奨)か 3.11 です。bpy に 3.12 用がないため、3.12 では入りません。今回は 3.11 で、bpy 4.5.15 と sand3d 1.6.3 が入りました。仮想環境の大きさは約710MB です。
同梱の例を動かす
README の最初の例(ねじ穴付きのプレート)は、これだけです。
import sand3d as s3d
def bracket(w=80, d=40, t=6, hole_d=6.6, pitch=50):
plate = s3d.extrude("plate", s3d.rect(w, d, r=4), t)
s3d.hole(plate, hole_d, on=s3d.grid(2, 1, pitch, 0))
s3d.fillet(plate, 1, edges="top")
return plate
s3d.export(bracket(), "bracket.glb")
同梱の例(プレート、いす、門、ランプ、ラック、フォーク、ボタン留めのいす、トレーニング器具、洗濯機)を順に動かし、すべて書き出せました。洗濯機は45行で、扉の蝶番や洗剤の引き出しの動きまで付いています。

AI に書かせると
sand3d の売りは、AI に書かせやすいことです。この記事を書いている Claude Code に、docs/api.md(約11,000文字)だけを読ませて、3つの部品を書かせました。追加の料金がかかる API は使っていません。
| 部品 | 1回目 | 2回目 |
|---|---|---|
| マグカップ(取っ手つき、くり抜き) | エラー:「rim という辺はない。ある名前は top、bottom…」 | rim を top に直して完成 |
| ふた付きの箱(蝶番で70度開く) | 完成 | — |
| L 字の棚受け(補強とねじ穴4つ) | エラーなしで書き出せたが、穴が補強の板を切っていた | 穴を立ち板に開けてから結合するよう直して完成 |

エラーの文が「どの名前なら使えるか」まで教えてくれるので、1回で直せました。一方で、棚受けのようにエラーが出ないのに形が違うこともあります。書き出したものを画像にして見る、という確認は欠かせません。
3つの部品のプログラムは、合わせて約1,400文字でした。
どこで使える?
- 3D プリンターで作る小物(STL)
- ゲームエンジンや Web で見せる物(GLB)
- ロボットのシミュレーション(URDF、関節の範囲つき)
画像や動画の生成とは違い、できあがるのは寸法の決まった 3D のデータです。同じプログラムからは毎回同じ形ができる、と README は説明しています。
商用で使える?
sand3d 本体は Apache-2.0 で、商用でも使えます。README によると、学習用などのデータセット(Hugging Face)は CC BY 4.0 で、使うときは作者の表示が要ります。bpy(Blender)は GPL です。
RTX 5090 以外の人へ
sand3d は GPU を使いません。今回の例は、どれも1つ1.4秒以内に作れました。
よくある質問(FAQ)
Q. sand3d とは?
3D の物を短い Python のプログラムで書くためのライブラリです。Blender の bpy の上で動き、AI に書かせることを前提に、API の説明が約3,600トークンに収まるように作られています。
Q. sand3d は Windows で使える?
Windows 11 の Python 3.11 で、pip install sand3d だけで入り、同梱の例9つがすべて動きました。Python 3.12 には bpy がないので使えません。
Q. AI に書かせるとうまくいく?
今回、マグカップと箱は1〜2回で完成しましたが、棚受けはエラーなしで形が違うものができ、2回目で直りました。書き出した形を目で確かめる必要があります。
まとめ
sand3d は、AI に 3D を書かせるための語彙を、プロンプトに入る大きさにまとめたライブラリです。エラーの文が親切で、直しやすい作りでした。
まず bracket を動かし、api.md を AI に渡して小物を1つ書かせてみる。
検証メモ
- 例の実行:リポジトリの docs/examples と programs の9ファイルを順に実行し、最上位の関数の結果を GLB と STL に書き出しました。画像は書き出した GLB を bpy の Workbench で表示したものです。
- AI に書かせた条件:筆者の作業用の Claude Code(この記事を書いている AI)に api.md を読ませ、その場で書かせました。ほかの例のプログラムは見せていません。1回目のプログラムは llm_parts_v1.py として残しています。
- トークン:README のトークン比較(Blender Python や CadQuery との差)は確かめていません。
- 未確認のこと:Python 3.13(bpy 5.2)、URDF・USD の書き出し、DeepSeek Harness など別の AI での成功率。

