3D

Sand3D: 106,094 3D objects written as Python programs

Sandflow has released Sand3D, an open dataset and library that describes 3D objects as short, named-part Python programs so language models can learn to build them, joints included.

· Announced 5 November 2026 · By

Scroll
A crowded field of rendered 3D objects including an armchair, a barbecue, a life jacket, a gramophone, a microscope and a kettle
Image: Sandflow (sand3d repository)

On 5 November, Sandflow published Sand3D: 106,094 3D objects, each one written as a short Python program. The aim is to give language models one consistent way to write 3D, rather than raw meshes or long, messy Blender scripts.

For game makers the interesting part is that the output is a recipe, not a frozen model. Change a value, run it again, and the object rebuilds.

What is in it

Every object is a program in Sandflow’s open sand3d library. Each part has a name, every dimension is a parameter, parts are placed in their parent’s frame, and moving objects declare their joints. A program opens with a table of contents that lists the parts and how they fit, then adds one function per part.

The objects come from five sources: Objaverse assets, CAD parts, articulated mechanisms, assemblies and static SimReady assets. Of the total, 10,456 are articulated. Each object ships with its program, an OpenUSD file the program exports (it opens in the Hugging Face 3D viewer, joints included) and a render.

The numbers

  • 106,094 objects across five dataset subsets, such as 66.9k from Objaverse and 24.5k CAD parts.
  • On 30 CAD parts, the same part takes 3.8 times fewer tokens in hand-written sand3d than in the Blender Python a language model writes for it. That is Sandflow’s own test.
  • Each object carries an F-score for how closely its program’s surface matches the source. Objects below a floor were dropped: 0.70 for Objaverse and static SimReady assets, and a higher floor for the others.
  • Install with pip install sand3d.

Limits and licence

This first release covers mostly hard-surface objects: furniture, tools, machines, mechanical parts and appliances. Characters, animals and organic shapes are not covered yet and would need new verbs in the library. Sandflow also lists no skinning, sweeps along curves or sculpted detail. The OpenUSD files are triangulated at export, and small details can be lost against the source mesh.

The dataset is under CC BY 4.0, with each object keeping the licence of its source. The library is Apache 2.0. The programs were written by Sandflow’s own agentic reconstruction pipeline, which it says it will describe in later releases, and the token comparison is not independently checked.

Our take

Props, furniture and machines fill most of a game world, and they are the part of 3D that a model can plausibly generate in parts you can edit. A named, parameterised structure is much easier for an artist or a designer to adjust than a single generated mesh. It also suits the pipeline we cover in AI models as game generators: a model writes a structured recipe, and the engine builds it. Characters remain the missing half.


Sources

← All news