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.
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.
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" } }
] }
Downloads
- Recipe v1 specification (Markdown)
- License (CC BY 4.0)
- Example worlds with downloadable recipes