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.