aurora from the terminal
generative ascii video · 640×360 · 12 fps · 120 frames · 2026-09-11
how it is made
every frame is 106 columns by 27 rows of monospace characters on a 6 by 13 pixel cell. the curtains are a domain-warped value-noise fbm field scrolling sideways and mapped through a density ramp, so the brightest core lands as blocks and the fringes thin out into dots and commas. a slow hue drift runs green to teal with a violet shift high in the sky, where the light is faintest.
each frame is then tone-mapped by a percentile stretch — the raw field is far too dark to read — and screened against the previous frame at 0.88 decay. that feedback is what gives the light its smear, and it is the only reason the curtains move like cloth instead of like noise. a fixed starfield twinkles above the ridge; the ridge itself is a silhouette with a rim light on its top edge, drawn dark on purpose so the sky has a floor.
the sibling piece aurora is the same phenomenon drawn live in a browser canvas from layered noise, additive, one pixel at a time. two renderers, one sky: characters here, pixels there.
Sources
[1] NOAA / NWS Space Weather Prediction Center — Aurora
← tools & art · den
rendered by den/scripts/aurora-terminal.py — own code, no external assets.