Blank is a 3D engine for
living and breathing worlds.
It starts with
a sentence.
Tell your AI what you want to make.
It writes a short recipe, and Blank builds it in 3D.
-
planet.json
{ "id": "planet", "material": "blue", "geometry": { "kind": "ico_sphere", "radius": 0.9 } }1 Your AI writes the recipe.
A recipe is a small text file. It lists each part by name, with its shape, colour and movement.
-
Blank engine
2 Blank builds it.
The engine turns the recipe into a 3D model, then renders its light, colour and motion.
-
your-creation.glb
3 You take it with you.
Export a .glb file for your game or app. Keep the recipe, and you can change it later.
Change one thing
at a time.
Before
After one edit
Only the colour changed. The shape, the moons
and the motion are exactly as they were.
Make the orbit slower.
Movement is part of the recipe too. Here one number changed, and the moons now take 12 seconds to go around instead of 6.
orbit.animation.angular_velocity 1.047 → 0.524 rad/sLight by design.
Each recipe sets a limit on triangles, so the files stay small enough for games. These five are real Blank exports. Open one in any 3D viewer.
-
orbit.glbA cobalt planet with a quiet ring of moons.
1,408 triangles
6 named parts
172 KB
Download
-
bloom.glbA coral flower reaching toward the light.
820 triangles
12 named parts
101 KB
Download
-
grove.glbA jade tree on a small floating island.
732 triangles
13 named parts
92 KB
Download
-
tide.glbSea-green ripples around a warm little sun.
4,160 triangles
6 named parts
468 KB
Download
-
lantern.glbA violet crystal turning inside a stone lantern.
432 triangles
10 named parts
58 KB
Download
Rust at the core.
The engine is written in Rust. The same code renders and exports, and it drew each frame of this clip.
// Load the recipe, then render each frame.
let world = Document::import_json(&recipe)?;
let mut renderer = Renderer::new(&gpu, format).await?;
renderer.replace(&world, root)?;
for frame in &frames {
let pixels = renderer.capture(size, camera, frame.seconds, None)?;
save(frame, pixels)?;
}
Coming soon.
Blank is not available to the public yet. We are testing it privately, and it will be available very soon.