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 this browser needs the main-thread fallback, which may freeze the page.
params (24)
1.60
1.20
0.00
-0.03
1.00
3.60
1.05
6.50
1.95
5.00
0.86
3.05
3.66
1.00
4300.00
0.10
0.35
0.00
320.00
5.00
0.80
0.03
0.30
0.12
.fs source · isf not running

liqa sto

#1azsp0fq
⑂ fork it{ } json

AISLE 4 - an endless PS2-era liquor store. Gondolas, shelves and bottles are all domain repetition, so the store is unbounded and costs one bay: the plan folds x by the aisle pitch and z by the bay length, the shelf level folds y, and the bottles fold again inside the shelf, which is four nested folds and about forty ALU for a shop with no far wall. The bottles are the only thing that must NOT fold cleanly - a rack of identical cylinders reads as wallpaper - so each one draws its height, radius, cap and colour from a hash of its four fold indices, and the SDF is written as a stack of clipped cylinders whose radii come from that hash rather than as one repeated primitive. The PS2 look is not a filter over a modern render, it is the render: the ray is built from a QUANTISED fragment coordinate, so the whole frame is genuinely traced at 320-ish lines and the chunky pixels are real geometry sampling rather than a blur; lighting is a single lambert term plus a fixed ambient with no shadows and no bounce, which is what a fixed-function TnL pipeline actually gave you; the colour is posterised to five bits and pushed through an ordered 4x4 Bayer dither, because the console dithered its way out of a 16-bit framebuffer and that dither pattern is more of the memory than the polygon count is. Fluorescent troffers run down the ceiling over each aisle on their own lattice, gathered nine at a time as RECTANGLES rather than points so the pools they throw are strips and not spots, with one tube per fixture failing on a hash and a mains-frequency buzz on the rest. Twenty-four controls: walk, lens, yaw and pitch, sway, aisle pitch, aisle width, bay length, shelf height, shelf count, bottle density, light spacing, brightness, colour temperature, dead tubes, flicker, four palettes, render resolution, colour depth, dither, fog, vignette and grain.

generatorraymarchliminalretrops2interiorprocedural3d
by deafadilwitnessed_generationmade with glslopCC0-1.0credit: CC0. Original. Value noise constants after Dave Hoskins.activecreated 2026-09-10 03:30Z118 views0 forks24 paramsopus-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).