Stoatworks Labs

Idler

The Windows 95/98 screensavers, for Resolume

Stablev1.0.11Plugin & ModuleC++ / GLSL
Idler — The Windows 95/98 screensavers, for Resolume
3D Pipes, rendered by the plugin's own offline harness driving the real plugin class through a headless GL context — not a Resolume screen capture. The same command is in the repo's docs/README.md, so the picture can be regenerated rather than being a file nobody can reproduce.

What it does

Eleven screensavers in one generator for Resolume Arena and Avenue. Mystify, Beziers, Curves and Colors, Flying Windows, Flying Through Space and Scrolling Marquee are the flat ones that shipped with Windows, and 3D Maze, 3D Pipes, 3D Flying Objects, 3D FlowerBox and 3D Text are the OpenGL ones that arrived with Plus! and came as standard in 98. It's two plugins rather than one, because FFGL resolves a single entry point per binary. Idler is a source that draws over its own background, and Idler Mask draws the saver over the clip it sits on, shows the clip only where the saver drew, hides it there, or tints it through.

Nostalgia's all very well, but to be any use on a show these had to be rebuilt properly, and the rebuilding is the interesting bit. Every saver is a pure function of time and a seed. Nothing integrates a velocity and nothing remembers the previous frame. A Mystify polygon bounces because its position is a triangle wave, not because anything tests for a collision, and a star's trail is that same star worked out a fraction of a second ago rather than a buffer of where it's been. Resolume's frame rate drops when the projection load goes up, and a saver that slowed down with it would drift off the music.

Two of them actually grow. Where a pipe goes next depends on where it's already been, so 3D Pipes and 3D Maze can't be a closed-form function of the clock. Instead of making an exception for those two, they're made deterministic by replaying from the seed. The state at any moment is defined by the time you asked for, the network can be scrubbed to wherever you drag the Phase slider, and the same composition grows the same plumbing on the show laptop and on the rack machine.

All eleven share one parameter list, seven scene controls that each saver maps onto whatever it has that's closest, with a preset per saver that sets them the way that saver actually ran. Colour Mode is the one worth knowing about. Classic is each saver's own palette as it was, and Tint, Spread and Cycle put the whole lot under one scheme, which is what makes any of it usable behind a band. Some of it the originals couldn't do at all: streaks on the starfield, wireframe on the FlowerBox, and all eleven over transparency.

Not affiliated with Microsoft. No Microsoft code, artwork or assets are used or included. The Flying Windows logo is four quads gesturing at the mark, not a reproduction of it, and 3D Pipes' teapot is generated from a profile curve, not taken from Newell's dataset.

Also available as OpenFX plugins for DaVinci Resolve, Vegas Pro, Nuke and Natron, with the generator and the mask filter in one bundle, driven by the same saver code. An OFX host hands a plugin a buffer instead of a GL context, so that build rasterises the scene in software. A test renders all eleven savers through both renderers and compares them, so a preset can't end up meaning one thing in Resolume and another in Resolve. Sync only offers Free and Manual there, because OFX doesn't carry a tempo, so Phase is the control to keyframe.

  • Eleven savers in one plugin, with a factory preset per saver that sets it up the way it actually ran
  • Two plugins from one core — a source with its own background, and an effect that masks the clip
  • Also an OpenFX pair for Resolve, Vegas, Nuke and Natron, from the same saver code
  • Every saver a pure function of time and a seed: frame-rate independent, resolution independent, and scrubbable
  • 3D Pipes and 3D Maze grow by deterministic replay, so the same seed builds the same network on any machine
  • Free-running, beat-locked, bar-locked, or driven entirely by an external Phase control
  • Classic palettes, or a single tint, hue spread or hue cycle across the whole suite
  • Flat, lit and wireframe shading, with fog on the 3D savers
  • Four mask modes on the effect — saver over the clip, reveal, hide, or colourise through it
  • Your own text in Scrolling Marquee and 3D Text
  • Universal macOS bundle (Apple Silicon and Intel), a Windows DLL, and an OpenFX bundle for macOS, Windows and Linux

Where it stands

Released at v1.0.11, on the 1.0 line. The last two point releases changed nothing in the Resolume picture: v1.0.10 put SW in front of both names in Resolume's browser, and v1.0.11 fixed the OpenFX build on Resolve's Fusion page, where every render used to fail. The OpenFX build arrived in v0.1.1. Since v1.0.1, 3D Maze is an endless maze built around the camera as it walks instead of one small grid, the host clock's epoch no longer freezes the two growing savers in Resolume, a Speed change no longer teleports the picture, and the OpenFX plugin has a Linux build. Both plugins have been loaded into Resolume and run, and all eleven savers render there. Everything else is checked by its own offline harness, which renders real frames and checks the mesh each saver builds, that all eleven draw at five different times including zero, that no control is dead, and, for the two that grow, that a frame reached by replaying the clock is byte-identical to the same frame rendered cold. Bar sync hasn't been checked against a real transport and it's never been used on a live show, so try it in your own rig first. The OpenFX build loads and renders in a test host and its software renderer is checked against the GL one on all eleven savers, and both plugins render on Resolve's Fusion page (Resolve Studio 21.1, macOS), but it's never run on Resolve's Edit or Color pages, in Nuke or in Natron.

Watch it running

Idler video thumbnail

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