10d8bd9902c6f22deb52cf6b4d334f8368adae61
Co-authored-by: Cursor <cursoragent@cursor.com>
LUMEN — Generative Shader Studio
A self-contained web tool that generates looping abstract shader art: liquid chrome, silk ribbons, soft gradient blooms, aura rings, light rays, halftone fields, data glyphs, reeded glass and pixel mosaics. Everything is rendered in real time with WebGL2 and every animation is a mathematically perfect loop.
Run it
No build step, no dependencies. Either:
- double-click
index.html, or - serve the folder:
npx http-server . -p 8080and openhttp://localhost:8080
Requires a browser with WebGL2 (Chrome, Edge, Firefox).
Controls
- Randomize (or press
R): new style, palette, form, lighting and seed, tuned per art style so results stay good. - Style: 9 art modes, each with its own renderer. "Keep style" locks the mode while randomizing.
- Color: 16 curated palettes plus a harmonic palette generator, 4 editable colors + background, hue / saturation / exposure.
- Form: seed, zoom, fbm detail, domain warp, turbulence, anisotropic stretch.
- Lighting: intensity, gloss, light angle, iridescence, glow, contrast.
- Texture: film grain, halftone/glyph density, ridge count, chromatic aberration, vignette, softness.
- Motion: loop length and travel distance. Loops are seamless by construction (the noise field is sampled along a closed circle).
Spacepauses,Ssaves a PNG.
Export
- PNG up to 3840×2160, rendered offscreen at full quality.
- Video (WebM VP9/VP8, MP4 where supported) recorded at 60 fps for 1–4 loops.
- GIF rendered deterministically frame by frame, encoded in-page with a dependency-free GIF89a encoder (median-cut palette + ordered dithering), infinite loop flag set.
Files
index.html/styles.css— app shell and design systemjs/shaders.js— the uber fragment shader with all 9 modesjs/engine.js— WebGL2 engine and render loopjs/gifenc.js— GIF encoder (quantizer + LZW)js/exporter.js— PNG / video / GIF pipelinesjs/palettes.js,js/ui.js,js/main.js— palettes, control builders, state and randomizer
Languages
JavaScript
72.5%
CSS
16.9%
HTML
10.6%


