Stoatworks Labs

Wheel

The DLP rainbow effect, on purpose, for Resolume

Betav0.1.0Plugin & ModuleC++ / GLSL
Wheel — The DLP rainbow effect, on purpose, for Resolume
Wheel

What it does

An FFGL effect for Resolume Arena and Avenue. A single-chip DLP projector never actually shows a colour picture. It shows a red one, then a green one, then a blue one (and on lots of wheels a white or CMY segment too), in turn, through a spinning filter wheel in front of a micromirror chip. Your eye adds them up.

It only adds them up properly if the eye is still relative to the screen. When the eye moves, following a moving object or in a saccade across a bright frame, each colour field lands on the retina in a different place. That's the rainbow effect, and it's what the plugin models: a retina rather than a filter. Each sub-field is shown for its segment's duration and integrated, shifted by however far the eye travelled during it.

Everything you'd recognise comes out of that. A still eye sees no fringe at any wheel speed, however fast the clip moves, because the DMD holds the frame. An object you follow fringes, and so does the background behind it. A faster wheel packs the fringe tighter. A white segment brightens whites and leaves saturated colours where they were. Under motion, the DMD's binary-weighted bit planes break greys into bands. Eye Mode picks Still, a set Pursuit, Track (the clip's own dominant motion) or Saccade, a burst of eye movement fired by an audio onset or by hand.

Three-chip mode is the other kind of projector fringe, for comparison: no wheel, three panels, and the static misconvergence between them.

  • A retina that integrates the colour sub-fields, not a colour-fringe filter
  • RGB, RGBW, RGBCMY (BrilliantColor order) and Custom wheels at 1x to 6x
  • Still, Pursuit, Track and Saccade eyes; a saccade fired by an audio onset or by hand
  • A still eye reconstructs the input exactly, at every wheel speed
  • Binary-weighted DMD bit planes that break greys into bands under motion
  • Three-chip mode with per-panel offsets and rotation for static misconvergence
  • Linear-light integration, with the picture linearised on the way in
  • Universal macOS bundle and a Windows x64 DLL

Where it stands

v0.1.0, and early days. It hasn't been loaded into Resolume on macOS yet. On Windows it has: a build loads, registers and renders in Resolume Arena 7.27.1 on software rendering (no GPU), with every parameter as declared, though Saccade Size and Saccade Time couldn't be shown moving there, because a saccade needs an audio onset or a Fire press the check can't send. Everything else is measured by an offline harness driving the real plugin at two rasters: a still eye returns the input with 0 bytes different at all five wheel speeds on a moving clip; under pursuit the colour fields separate by the predicted distance, bit for bit, and halve it on a 2x wheel; per-channel energy holds under pursuit; the white segment lifts grey as predicted; three-chip offsets are exact to the pixel; and the saccade decays as it should. It catches all 12 of its negative controls and a one-character change to its own shader, and all 23 swept controls change the picture. It costs 0.90 ms a frame at 1080p and 3.29 at 4K at the defaults on macOS, and the heaviest wheel under pursuit takes 19.1 ms at 4K. The audio path has only seen synthetic spectra, and the Track eye is one global motion estimate, not per object. There's a user guide and a browser demo, which is a port rather than the plugin, but no presets and no OpenFX port. The macOS builds are signed and notarised. Try it in your own rig before you trust it in a show.

Watch it running

Wheel video thumbnail

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