AURELIUS
DYNAMIC
Proven Today · Shader Lab

Live TSL materials, with the receipts attached.

Shader Lab is Aurelius' public rendering workbench. Pick a material, drag the geometry, adjust the clock, and inspect the source that built the result. Every material here is a reusable module verified on both WebGPU and WebGL2 before it appears.

55 verified material programs WebGPU + WebGL2 parity-gated Source derived from implementation modules

Interactive workbench

Choose a material. Inspect its behavior.

Landing preview →
INITIALIZING -- MS · -- FPS

DRAG TO ROTATE · SCROLL TO ZOOM

Loading the pinned renderer and verified material modules.

What this proves

These are not screenshots or separate shader forks. The material selected above is the same ES module used by the benchmark, the landing-page preview, and this dedicated workbench. The source pane is exported by that module, so it cannot silently diverge from the implementation. The chip list is not written here either — the page walks the library's own material roster, so a material that ships is a material that appears.

From material idea to public artifact

01 · Author

One module, one source of truth

Every material exports its name, its TSL apply() function, and the readable source fragment displayed in the Lab.

02 · Verify

Both browser GPU paths

The bench renders frozen parity frames, live animation, and a mobile advisory pass on WebGPU and WebGL2. Console errors and invalid frames fail the gate.

03 · Measure

Cost is part of the claim

Each chip carries its measured cost class and baseline provenance. Expensive materials remain visible, but never hidden behind a performance claim.

New in this material wave

Eleven new materials, each built on a mechanism the library did not already own:

Ripple Tank

Nodal lines as geometry

Two sources, summed as phasors. The envelope of that sum has no time term in it, so the dark hyperbolae where the waves always cancel are drawn as the fixed geometry they are — not caught on a lucky frame.

Carbon Weave

A highlight that turns with the tow

The over/under swap of a plain weave chooses which way the fibre runs, and the anisotropic sheen band turns ninety degrees with it. An isotropic specular cannot make cloth flash in a chequer.

Cumulus

One step toward the sun

A second density sample offset along the light direction, attenuated through exp(−τ). That one-step light march is the whole reason a cloud has a blinding top and a flat grey base.

Spiral Galaxy

The pattern turns, the stars do not

A logarithmic spiral advanced by a rigid pattern speed — the density-wave model. Arms made of fixed stars would wind shut within a few orbits. Colour comes from the Planckian locus, not from taste.

Rain Glass

Beads as lenses

Each drop samples the backdrop at a coordinate inverted about its own centre, which is what a converging lens does. Every bead carries a small upside-down copy of what is behind the window.

Snowflake · Chainmail · Moiré

Symmetry, interlock, and beat

Twelve mirror sectors give ice its point group; row parity turns stacked washers into mail; two rulings a few degrees apart produce rosettes at a frequency the shader never evaluates.

Ferrofluid, Cracked Clay, and Tiger’s Eye round out the wave — Rosensweig spikes gated by field alignment, crack width driven by a dryness field, and chatoyancy from a sheen band that slides along the fibres instead of sitting still.

New nodes behind them

Five library primitives shipped with this wave and are visible in their own right: interference (phasor sum with a time-independent envelope), weave (over/under interlacing), polarFold (mirror-fold into a wedge, promoted out of Kaleidoscope so one copy serves both), anisoSheen (the Kajiya–Kay fibre highlight), and valueNoise2D.

Why TSL

Modern browser rendering spans two backends: WebGPU uses WGSL and WebGL2 uses GLSL. Three.js Shading Language lets Aurelius author one node graph and compile it for both. That reduces parallel maintenance, but only if the graph is tested on both paths. The Lab exists to make that testable work public.

Engineering notes

Backend discipline

Parity is measured, not assumed

Materials receive a frozen clock for screenshot comparison, then run live under each backend. Differences beyond a material-specific tolerance block release.

Performance discipline

Frame time has context

Cost classes come from a documented Intel UHD 630 baseline. The live readout is your machine's current frame time, not a borrowed benchmark number.

Interaction discipline

Explore the implementation

Drag the knot, change the clock, and switch materials. Direct interaction is a useful test of behavior that static imagery cannot provide.