Procedural studio · Browser · Cycles
Procedural art, authored in the browser.
A modifier stack and a node graph, evaluated live, collaborative by default, and renderable in Cycles. An object is a source followed by an ordered stack — change anything and everything downstream re-resolves. Nothing here is baked.
Nothing is baked
The stack, running.
A box, three modifiers, the real evaluator. Switch one off, drag a parameter, or move it up the stack — subdividing a displaced box and displacing a subdivided one are different sculptures, not different settings.
Three surfaces
One document, three ways in.
/editor/<id>
Editor
Outliner, viewport, modifier stack, materials, textures, render settings.
/view/<id>
Viewer
Locked to a camera and letterboxed to the render aspect. The URL is the framing.
/xr/<id>
Headset
A WebXR session for placing and sculpting the work at any scale.
All three join the same room in the same document. They are not exports of one another — a stroke sculpted in a headset arrives on a laptop as editable rows of numbers in a modifier, not as moved vertices.
Cycles-accurate textures
Blender's noise, not something like it.
Every pixel here is a call into the same function that displaces the mesh in the viewport and the same one the exporter hands to a native Cycles node — a port of Blender's noise, hash for hash. Move the cursor to sample it.
Collaborative by default
Two peers, one document.
These are two real CRDT documents exchanging binary updates across a delay you control. Pull the connection and both sides keep working; put it back and they converge — which is what lets a laptop, a phone and a headset hold the same scene without one of them being the authority.
What is in it
The rest of it.
Geometry
Primitives including Menger sponges and Sierpiński forms, metaball fields meshed with marching cubes, L-systems, text from any Google Font, imported meshes.
Modifiers
Subdivision, displacement, Voronoi fracture, boolean, bevel, twist, bend, array, mirror, scatter, sculpt — any of them attenuated by a falloff, which is how an effect becomes local without adding another object.
Material and light
The full Principled BSDF with presets. Lights in watts and colour temperature, converted to viewport intensity by radiometry rather than by a fudge factor.
Rendering
Three ways out, in increasing order of patience: the rasterised viewport, a progressive GPU path tracer in the browser, and Cycles on a remote GPU returning PNG, JPEG or EXR.
Format
JSON or YAML, validated by a schema derived from the same parameter declarations that generate the property panels, the assistant's tools and the Blender exporter.
Assistant
Text and voice, driving the document through the same operations the UI uses. It can look at the viewport — including a path-traced one — to judge its own work.
Start
Your projects.
Projects
No projects yet.
Create one, or open the demo scene above.