Real-time · WebGL
Motion backgrounds,
running live.
Every scene here renders in the browser at full frame rate, with no video files and no loops to buffer. Open one full screen, or lift the component straight into a page.
One line, always moving
Signal Tide
A single waveform rolls across a grainy petrol-blue field, shifting from blue through coral to violet as it moves. No particles, stacked paths, or texture files.
three.js · fragment shader · signed-distance waveform
View full screenLight falling into the throat
Wormhole Drift
Slow arms of cold light spiral into a dark mouth, with finer filaments drawn inward faster than the body of the medium. One shader pass, no textures.
three.js · cylindrical FBM · logarithmic spiral
View full screenMorphing particle assembly
Swarm Forms
16,000 metallic dots settle into a human face, a robot head, and a sprouting plant, scattering apart between each. Every point cloud is generated from maths, no scans or models.
three.js · instanced attributes · vertex-shader morph
View full screenLuminous nested signal
Violet Contours
Soft concentric contours breathe through a violet deep-space glow while a sparse field of stars drifts overhead. One shader pass, built to stay quiet behind content.
three.js · fragment shader · distance fields
View full screenInstanced fur landscape
Velvet Field
A fur-covered ridge drifting in the void. 400k instanced blades bend under two crossing wind waves, with scattered stone and a slow figure-eight camera.
three.js · instancing · vertex shader wind
View full screenFull-screen shader curtains
Aurora Drift
Three FBM-warped light curtains hanging over a sparse starfield. No geometry at all: one quad and a fragment shader, light enough to sit behind live content.
three.js · fragment shader · FBM noise
View full screenProcedural planet from low orbit
Emerald Orbit
A world turning under a green atmosphere, with a scattering shell for the limb glow and a shader galaxy behind it. Every surface is generated, no texture maps.
three.js · 3D value noise · fresnel scattering
View full screenLiquid metal in freefall
Molten Chrome
A cluster of mercury droplets fusing and splitting in slow freefall. Raymarched distance fields with a procedural sky reflected off the surface, no environment maps, no textures.
three.js · raymarched SDF metaballs · fresnel chrome
View full screenRefracted light, slowly turning
Prism Drift
Slabs of glass turning in front of a soft gradient, each bending the light behind it. Red, green, and blue are refracted by different amounts, so every edge fringes into colour.
three.js · screen-space refraction · chromatic dispersion
View full screenInk finding its current
Flow Current
A near-black field with only a handful of soft currents drifting through it, each trailing a comet-like wake along its own wandering path. Quiet by design, built to sit behind content.
three.js · fragment shader · analytic motion trails
View full screenA grid running to the vanishing point
Neon Horizon
A wireframe landscape rolling toward a synthwave sun. The heightfield scrolls under a fixed grid, so ridges rise in and flatten as they pass, lines glowing brighter toward the horizon.
three.js · noise-displaced wireframe · additive glow
View full screenThe black between things
Deep Field
Mostly the empty dark, interrupted now and then: a black hole drifts through, bending the starlight into a ring and trailing a tilted disk, while comets cross on their own schedules and asteroids tumble past. Blinking stars and a faint galaxy behind it all, one shader pass, no textures.
three.js · fragment shader · analytic gravitational lensing
View full screenA universe igniting beyond the glass
First Light
The view from a drifting helmet as a single point of light detonates into a sky, a shockwave of hot filaments cooling into stars and nebula, then dark again. Cosmos and visor are one shader pass, no textures, looping forever.
three.js · fragment shader · radial FBM shockwave
View full screenOnly the observer is moving
Warp Threads
A loom's warp seen from inside it: thousands of tensioned filaments in banded fans of colour, hanging perfectly still. Nothing in the field animates; the camera travels down the empty channel in the middle, so every thread streams out of the vanishing point purely from parallax.
three.js · instanced screen-space lines · additive bloom pass
View full screenMove the light across the lattice
Lantern Grid
Tens of thousands of halftone dots on a slowly warping sheet. This one answers the cursor: wherever you hover, the sheet lifts toward you and the dots there swell and ignite, parting from their neighbours as they rise. Drag on touch, and left alone, the light wanders the field on its own.
three.js · instanced halftone lattice · pointer-driven displacement
View full screenLight through open water
Caustic Deep
A seabed lit by moving caustics, crossed by soft shafts falling from the surface and dimmed by depth. The web of light comes from animated cellular noise, quiet enough to sit behind content.
three.js · animated Voronoi caustics · god rays
View full screen