Blank

The open format

Every Blank world is a recipe: a small JSON file that names each part and gives its shape, material, light and motion. You or your AI write the recipe, and the Blank engine builds it. The format is open, so anyone can read it, write it and build tools for it.

A floating meadow with trees, pines, flowers, a pond and a glowing shrine
Whispering Clearing: one recipe with 249 parts that all follow one breeze.

What is open

Open: the specification and the example recipes, free to use under CC BY 4.0. Not open: the Blank engine, its renderer, its exporters and the hosted service. Recipes you write belong to you.

Shared rhythms

You define a rhythm once and give it a name, such as breeze. Every tree, blade of grass and flower that follows it moves together, the way wind moves through a meadow. If you change the rhythm, every part that follows it changes too. See Motion and rhythms.

"rhythms": { "breeze": { "period": 7, "direction": [1, 0, 0.35], "wavelength": 9 } },
"parts": [{ "id": "tree-0-crown-0", "material": "jade",
  "animation": { "rhythm": "breeze", "sway": 0.06 } }]

Every part has a name

A recipe builds everything from six shapes: box, cone, ico_sphere, torus, loft and prism. Each part has a name, a material and, if you want, light and motion. Every value has a limit, and Blank checks the whole recipe before it builds anything. This makes a recipe safe to accept from anyone, including an AI. See Parts and shapes.

Five coherent low-poly props: a tree, a gate, a lantern, a rock and a chest
Sunward Grove: every stone, trunk and lantern is a named part you can point to and change.

Precise edits

An edit lists exactly what should change. Everything else stays as it was. See Precise edits.

{ "base_revision": 0, "edits": [
  { "material": "blue", "set": { "color": "#E58FB5" } }
] }
The ringed planet in blue The same planet after the edit, in pink
“Turn the blue to pink.” One material edit. The shape, the motion and the other materials stay the same.

Downloads