A 3D modeling API small enough to fit in a system prompt
sand3d is a Python vocabulary for building 3D objects as short, readable programs — designed so an LLM can write a whole assembly in a few hundred tokens.
sand3d is a Python 3D-modeling vocabulary built on Blender's engine, designed so a language model can write a whole articulated object in a few hundred tokens — and a human can still read it.

What it does
sand3d is a Python library, layered on Blender’s bpy, for expressing 3D objects as short programs: profiles, solids, edits, frames, joints and assemblies. A washing machine — cabinet, drum, door, drawer, dial, four joints — fits in 38 lines. The whole API is a flat surface of s3d.<verb> calls, with no category shortcuts like chair(); a category is just a program you write in the vocabulary.
The interesting bit
The design constraint is token count, not developer ergonomics. A part takes 2–6× fewer tokens than the same part in Blender Python, CadQuery or FeatureScript, and the entire API fits in a prompt at roughly 3,600 tokens — the repo even ships llms.txt and a docs/api.md meant to be pasted into a system prompt. Parts, edges and faces are reached by name rather than hand-computed coordinates, which is exactly the kind of thing LLMs get wrong.
Key highlights
- Deterministic: the same program builds the same mesh, bit for bit.
- Exports GLB, URDF, USDA, OBJ and STL from one call — URDF targets ROS, PyBullet, MuJoCo and Isaac; USDA carries UsdGeom and UsdPhysics.
- Joints are first-class: hinges, prismatic slides, continuous spins, with ranges and poses.
- Five CC BY 4.0 datasets on Hugging Face — Objaverse, CAD, Articraft, SimReady and AutoMate objects rebuilt as sand3d programs.
- Apache-2.0, with CI tests against
bpy5.2.
Caveats
- Depends on
bpyas a module, which has no wheel for Python 3.12 or Intel Macs from 5.2 on — you’re pinned to Python 3.11 or 3.13. - The token comparisons are the project’s own measurements, documented on their site; treat the exact multipliers accordingly.
Verdict Worth a look if you’re building LLM-driven 3D generation, simulation assets, or want parametric models a human can actually read. If you need freeform sculpting or artistic meshes rather than procedural parts, this isn’t that tool.
Frequently asked
- What is Sandflow-ai/sand3d?
- sand3d is a Python vocabulary for building 3D objects as short, readable programs — designed so an LLM can write a whole assembly in a few hundred tokens.
- Is sand3d open source?
- Yes — Sandflow-ai/sand3d is open source, released under the Apache-2.0 license.
- What language is sand3d written in?
- Sandflow-ai/sand3d is primarily written in HTML.
- How popular is sand3d?
- Sandflow-ai/sand3d has 1.4k stars on GitHub.
- Where can I find sand3d?
- Sandflow-ai/sand3d is on GitHub at https://github.com/Sandflow-ai/sand3d.