glslop
[ CC0 shader vibe commons · everything here is public domain ]
experimental backend WebGL2 · not opted in
Enable WebGPU controls in settings. WebGL2 remains unchanged.
preview clip · live controls are optional about 13s to compile on a fast gpu; slower hardware can take longer. this browser needs the main-thread fallback, which may freeze the page.
params (29)
1.00
1.70
2.00
0.00
62.00
12.00
-24.00
1.00
0.58
1.00
0.68
0.38
0.95
0.50
1.00
0.45
1.00
0.50
0.60
0.80
0.40
0.80
0.85
1.00
1.08
1.00
0.40
0.00
0.25
.fs source · isf not running

Mojave

#mn1acu86
⑂ fork it{ } json

Flying low over an endless high desert: Joshua trees, Mojave yuccas, creosote, cholla, brittlebush and granite boulders streaming past a couple of metres under the camera, under a sky that is solved rather than painted. There is no texture in here and no buffer. The world is an infinite field on a nine metre lattice, and every cell is one exact integer hash that decides what grows there, how big it is, how far it leans off centre and which way it faces -- so the ten thousandth tree costs exactly what the first one did. The hash is integer arithmetic carried in floats with every intermediate a whole number below 2^24, because a float hash quietly loses the bits that decide structure as its argument grows, and two GPUs will then disagree about which cells hold trees. Plants are billboards, but a billboard here is not a picture: it is a signed distance field in the plane facing the camera, so it has no resolution, its coverage is exact, it is antialiased against the real pixel footprint at its own distance, and it can be lit from behind. That last part is most of the shader -- at eleven degrees of sun elevation the light coming THROUGH a yucca rosette is brighter than the light bouncing off it, and a cholla's spines glow before its flesh does. Every radius is widened to at least one pixel first, because a twig thinner than its pixel does not go faint, it goes dashed, and two thousand plants doing that reads as the whole frame boiling. The ground is a sum of plane waves rather than fbm, which is a tenth the cost inside a march that runs it sixty times a pixel and lets every z frequency be forced to a whole multiple of 2*pi/720; on it are two soils, the pale alluvium that still moves and the dark varnished pavement that does not, braided dry washes cut through both, gravel, dry grass and windrows in the sand that fade out exactly when the pixel footprint stops resolving them. Shadows are walked along the sun direction rather than sampled from a neighbourhood, because a low sun throws a shadow five times an object's height and a 3x3 patch of cells would miss nearly all of them. The sky is single scatter by hand: Rayleigh, whose 1/lambda^4 cross section is why the zenith is blue and why the sun reddens as it drops, plus an aerosol haze with a hard forward lobe, which is the glare around the sun and the pale band along the whole horizon; on top of that a multiple-scattering floor carrying the anti-twilight arch, an altocumulus deck projected onto a plane so its rows converge to the horizon by themselves, cirrus stretched along the wind above it, and three ranges at four, thirteen and twenty-six kilometres. The clouds get their silver lining honestly, by sampling their own density one step toward the sun and subtracting it. Everything -- ground, plants, clouds, camera sway, bob, wind and grain -- is an exact 60 second loop at the default speed: 720 metres of travel, an eighty cell lattice, and every rate a whole number of cycles per minute. Sliders for speed, camera height, pitch, yaw and field of view, sun elevation, azimuth and power, haze, fog, cloud cover, cirrus, plant density, how much of the field is Joshua trees, plant scale, wind, terrain relief, sand ripples, gravel, washes, heat shimmer, mountains, shadows, backlight, saturation, exposure, glare, vignette and grain.

by ksinwitnessed_generationmade with ClaudeCC0-1.0credit: CC0activecreated 2026-09-09 05:46Z142 views0 forks29 paramsClaude-Opus-5
export clip · render a video in your browser

Renders to video in your browser (no upload), stepping the real renderer frame by frame so multipass + feedback come out right. motion auto-animates the shader's own knobs — each export rolls a fresh take (🎲 re-roll, 🔒 to pin one you like). GIF is slower with a tighter length cap; MP4/WebM are faster. Some devices record in real time (noted below if so) — keep the tab visible.

caps: ≤1920 per side, ≤60fps, ≤18000 frames (GIF ≤300)
embed · drop this shader into any page
preview ↗

Renders client-side in the reader's browser (CC0 — no attribution required, but the backlink is appreciated).