Stoatworks Labs

Orrery

Animated shapes for masks and pixel maps

Stablev1.0.7Plugin & ModuleC++ / GLSL
Orrery — Animated shapes for masks and pixel maps
Four configurations rendered by the plugin's own offline harness, which drives the real plugin class through a headless GL context — not a Resolume screen capture. Clockwise from top left: a pulsing grid with hue spread across the set, an orbit chase in white, outlined squares on a bounce, and stars on a Lissajous.

What it does

Circles, squares, triangles, hexagons, stars, crosses, rings and bars, moving around the frame on a path you choose, for Resolume Arena and Avenue. It ships as two plugins rather than one, because FFGL resolves a single entry point per binary. Orrery is a source that draws shapes over its own background on its own layer; Orrery Mask is an effect that draws the same shapes over the clip it sits on, or cuts them into it — reveal the clip only inside the shapes, hide it only inside them, or tint it through them.

It was built for two jobs that pull in the same direction. The first is a quick animated mask: shapes over black, used as a luma mask or layered with a blend mode, without opening an animation package to make one. The second is pixel mapping — point Resolume's pixel mapper at a composition running Orrery and the shapes stop being graphics and become the lights. Grid lays them out on a fixture layout, Hue Spread gives every one its own colour, and Spread turns a clump into a chase that arrives in order.

Every shape's position is a closed-form function of its index and a single phase number. There is no simulation anywhere — a bounce is a triangle wave rather than a collision test, and a drift is a wrap rather than an accumulation. That is the feature rather than an implementation detail. A chase that integrates a velocity 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; a lighting chase that slows down when the projection load goes up is not a cosmetic problem. 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.

Because phase is just a number, locking to music costs nothing extra: Sync swaps the host clock for the host's own bar position and the shapes lock to the track with no separate code path. Set it to Manual and the Phase control becomes the only driver, so Resolume's BPM-synced animation, a keyframe or a MIDI fader can drive it directly.

Also available as OpenFX plugins for DaVinci Resolve, Vegas Pro, Nuke and Natron — the generator and Orrery Mask in one bundle, driven by the same Motion.cpp. Sync offers Free and Manual there; OFX hosts carry no tempo, so Phase is the thing to keyframe.

  • Two plugins from one core — a source with its own background, and an effect that masks the clip
  • Eight primitives — circle, square, triangle, hexagon, star, cross, ring and bar — with roundness, outline, stretch and edge softness
  • Five paths — orbit, Lissajous, drift with wrap, bounce off the frame edges, and a static grid that pulses
  • Spread and Scatter take the set from a clump to an evenly-ordered chase to a swarm
  • Free-running, beat-locked, bar-locked or driven entirely by an external Phase control
  • Pulse the size and the brightness of each shape independently, with an adjustable duty
  • White, solid, hue spread across the set, or a hue that cycles — and a hard edge when the output is feeding fixtures rather than a screen
  • Four mask modes on the effect — shapes over the clip, reveal, hide, or colourise through them
  • 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.7, on the 1.0 line. The two point releases since changed nothing in the picture: v1.0.6 shipped a Windows installer that no longer touches the system PATH — the earlier one could overwrite it — and v1.0.7 gives both plugins a real description in the field Resolume shows for them. The OpenFX builds for Resolve, Vegas, Nuke and Natron arrived in v0.2.0. v1.0.2 answers two reports from an operator running it live in Resolume: changing Speed used to jump every shape somewhere new, because the phase was the host clock times the speed and that clock is however long the composition has been open — it now carries the phase reached so far forward and simply changes pace — and Shade and Light were added, lighting a shape as though it had been inflated, which on a circle is exactly a sphere because the normal comes out of the same distance field that draws the shape. Verified by its own offline harness, which renders real frames and measures where every shape landed against an independent prediction across five paths and four aspect ratios, and sweeps all 46 controls to show each one reaches the picture. It has been loaded into Resolume and is in use there. Every release now runs the shipped Windows build in a real Resolume Arena 7.27.1 before it ships: both plugins register with the right name, uid and category, all 52 controls the host reports match the ones declared, and 42 of them are shown to move the picture. That check runs on software rendering, so it says nothing about an NVIDIA or AMD driver, and the machine has no sound device, so the three audio-driven controls are unverified. the OpenFX build has only ever met a probe harness, so check that one in your own rig before trusting it in a show.

Watch it running

Orrery video thumbnail

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