Lab experiment 07 · Live

Dispersion Bar.

A slab of glass lit from within. A hot point of light sweeps along the bar, and where it bends through the edges and seams it splits into a prism of color — then the whole thing is crunched down with ordered dithering and wrapped in bloom. Tune every layer, then export a still, a WebM, or a seamless PNG frame loop. Flip the renderer between WebGL (GPU) and Canvas 2D (CPU) — same controls, same exports, your call.

Recording
Renderer
Motion
Speed
Hotspot width
Sweep range
Ambient glow
Glass bar
Length
Thickness
Segments
Gap size
Bevel / edge
Corner round
Chromatic dispersion
Dispersion
Spectrum mix
Spectrum bands
Spectrum drift
Bloom
Intensity
Threshold
Radius
Exposure
Dither / pixelation
Pixel size
Dither amount
Color levels
Pattern
Color
Vignette
Render & export
Resolution
Clip length
FPS
WebM records live playback. PNG frames render a deterministic, seamless loop — best for max quality.

The color split is real chromatic dispersion — the bar's emission is sampled three times, nudging red, green and blue apart by a few pixels. Where the light has a steep edge (a seam, the rim, the hot point) the channels separate into a prism fringe; where it's flat they stay white. Then a fixed Bayer threshold matrix dithers the whole frame down to a handful of color levels, so the gradients break into honest dots instead of smooth ramps. Bloom is a two-tap separable blur added back on top. Cheap tricks, stacked — that's the whole craft. The Canvas 2D renderer does the very same math, just per-pixel on the CPU instead of in a shader: it draws into a small grid and scales up with nearest-neighbour, which is why the Pixel size control doubles as its resolution. Same look, no WebGL required.