Stoatworks Labs

Downpour

Digital rain for Resolume

Releasedv0.1.0Plugin & ModuleC++ / GLSL
Downpour — Digital rain for Resolume
Rendered by the plugin's own offline harness, which drives the real plugin class through a headless GL context — not a Resolume screen capture.

What it does

Digital rain for Resolume Arena and Avenue: columns of characters falling at their own speeds, each with a bright leading glyph and a trail that fades out behind it. It ships as two plugins rather than one, because FFGL resolves a single entry point per binary. Downpour is a source that draws over its own background on its own layer; Downpour Over is an effect that draws the same rain over the clip it sits on, so the controls live with the footage instead of a layer above it.

The rain does not know the difference between an alphabet and a book. Both are just a list of characters, and the only question is whether it draws from them at random or reads them in order. Junk mode scatters katakana, hex, binary or ASCII. A built-in token grammar generates something that reads as source code, which is a different problem from random characters: what the eye recognises as code at that speed is the punctuation density, and prose has almost none of it. And four public domain passages are built in, or you can type your own text or load any text file, in which case the document genuinely plays out in order rather than being sampled from.

Every cell is a closed-form function of its column, its row and the host's clock. There is no simulation state anywhere — no feedback texture, no previous frame — and that is the feature rather than an implementation detail. A rain that advances one frame at a time runs at whatever frame rate the host is managing, and Resolume's frame rate drops when the show gets heavy. This one runs at the speed you asked for whether the host is holding 60fps or 20, looks identical at 720p and at 4K, and can be scrubbed to any point without playing what came before.

Fonts are found by walking the machine's own font folders, and anything you pick is rasterised into the glyph atlas. The fallback is per character rather than per font, which is what makes offering the choice safe: pick a typeface with no katakana and you get your font for the Latin and the plugin's own drawn face for the katakana, instead of a grid of empty rectangles. The chosen family name is stored in the composition alongside the menu position, because a menu position means a different typeface on a machine with a different set of fonts installed.

  • Two plugins from one core — a source with its own background, and an effect that draws over the clip
  • Rain in four directions, with per-column speed, trail length, density, glyph mutation rate and seed
  • Junk from katakana, katakana with digits, hex, binary, ASCII, digits or Latin
  • A code generator that emits brackets, semicolons, arrows and hex literals rather than random characters
  • Four public domain passages built in — Alice in Wonderland, Plato's cave, Hamlet's soliloquy, and Descartes on doubt and the cogito
  • Load any UTF-8 text file, or type your own, and watch it play out in order
  • Any installed .ttf, .otf or .ttc, with a per-character fallback to the plugin's own drawn face
  • Separate text and background colours and opacities, a distinct head colour for the leading glyph, and glow
  • Universal macOS bundle (Apple Silicon and Intel) and a Windows DLL

Where it stands

Released at v0.1.0. Needs Resolume Arena or Avenue 7.3.1 or newer. Verified entirely by its own offline harness — it has not yet been loaded into Resolume, so check it in your own rig before trusting it in a show.

Watch it running

Downpour video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead