The 3D Pipeline¶
Generate, filter, and render volumetric fields — a true 3D counterpart to the 2D synth/filter/render chain, on both the WebGL2 and WebGPU backends.
A 3D chain has the same shape as a 2D one: a generator produces a field, zero or more filters transform it, and a renderer turns it into pixels. The difference is that every intermediate value is a volume rather than an image.
search synth3d, filter3d, render
noise3d(volumeSize: x64)
.palette3d(index: palette.brushedMetal)
.render3d()
.write(o0)
render(o0)
volumeSize (on the generator) sets the volume resolution: x16,
x32, x64, or x128 (16³ … 128³). Downstream effects inherit it
automatically.
Generators (synth3d)¶
Volume generators live in the synth3d namespace: noise3d, cell3d,
fractal3d, shape3d, cellularAutomata3d, reactionDiffusion3d,
and flythrough3d. Each one’s parameters are documented in the Effect
Reference.
Volumetric filters (filter3d)¶
Filters in the filter3d namespace transform a volume and pass it on:
palette3d— recolors the field per voxel with the same 55 cosine palettes and RGB/HSV/OkLab colorspace modes as the 2Dpalettefilter.flow3d— an agent-based 3D flow field that deposits trails through the volume.
Recoloring filters follow a shared pattern: they change a voxel’s color while passing its shape (geometry) through untouched, so any downstream renderer sees the same surface.
Renderers¶
A renderer consumes the volume and produces the frame:
Renderer |
Output |
|---|---|
|
Universal raymarcher: smooth |
|
Lit variant of |
|
Six seamless cube faces for skyboxes and planetary surfaces — see the Cubemaps guide |