Honeydew
Oscillating and clock reactions, for Resolume

What it does
Two FFGL plugins for Resolume Arena and Avenue in one download: SW Honeydew, a source that's a Petri dish of reacting chemicals on a lightbox, and SW Honeydew Over, an effect where your clip is the lightbox, filtered by the chemistry and, where the chemistry is photosensitive, acting on it.
It's modelled as a thin layer of actual chemistry. Every reaction is a published mechanism with its rate constants in mol/L and seconds, the species diffuse with real diffusion coefficients across a dish whose width is in millimetres, and nobody picked the colours. Each coloured species has a measured absorption spectrum, the layer filters the lightbox by Beer–Lambert through its depth, and the picture is that light as the CIE 1931 standard observer sees it.
The eight reactions: Belousov–Zhabotinsky (ferroin red ⇄ blue, Ru(bpy)3 orange ⇄ green and photosensitive, or cerium), with target waves from pacemakers, spirals where Break Wave cuts a wave once Excitability is turned up, and the whole dish flipping colour at once when it's stirred; Briggs–Rauscher's colourless → amber → blue-black; the iodine clock's snap to blue-black, which a dose of thiosulfate clears and Clock Sync lands on the bar; CDIMA Turing spots and stripes at a wavelength the chemistry sets; the traffic light's green → red → yellow, the blue bottle and the vanishing valentine, all run back by a Shake; and the chemical chameleon's purple → green → brown.
In the Over, your clip is the light under the dish. The layer is a proper colour filter over the picture, and Light Coupling lets the clip's brightness act on the photosensitive chemistries, so waves stop at its bright parts and Turing patterns print it. Drops, Shakes and doses can follow audio onsets.
- A source (the dish on a daylight, LED or warm lightbox) and an Over effect (the clip is the lightbox) in one download
- Eight reactions, each from its published mechanism and rate constants: Belousov–Zhabotinsky, Briggs–Rauscher, the iodine clock, CDIMA Turing patterns, the traffic light, the blue bottle, the vanishing valentine and the chemical chameleon
- Colour from Beer–Lambert through each species' absorption spectrum and the CIE 1931 observer, never a palette
- Real units: dish width and depth in millimetres, recipes in mol/L, Time-lapse from real time to 300×
- Stir from a still layer (target waves, Turing patterns, drops spreading) to a stirred beaker (the whole vessel together)
- Excitability (the Oregonator's f): from a dish that oscillates by itself to an excitable one where Break Wave winds spirals
- Drops, Break Wave, Shake, and Clock Sync so the clock's snap or a dye's fade lands on the beat or bar
- Light Coupling: the clip projected onto photosensitive BZ and CDIMA
- Universal macOS bundles and Windows x64 DLLs
Where it stands
v0.1.1, and early days. 0.1.1 adds Excitability, so Break Wave's spirals are reachable (raise it past 0.42, press Drop, then Break Wave), and a fresh stirred dish now starts by itself. It hasn't been loaded into Resolume on macOS yet. On Windows it has: both plugins load, register and render in Resolume Arena 7.27.1 on software rendering (no GPU, no sound device) with every parameter as declared. The dish's waves move every frame, which keeps the check's noise floor high, so 10 of the source's controls and 15 of the effect's were confirmed live there in the 0.1.1 run, the rest were inconclusive, and none were dead. The chemistry is checked by an offline harness driving the real plugin code: a stirred ferroin dish oscillates every 101.2 s against the Oregonator's 101.0 s, Excitability plus a Drop and Break Wave leaves a spiral pair (none at the default), trigger waves run at the reference speed at three acid strengths, the iodine clock snaps within a frame of its closed form and Clock Sync lands it within 0.02 s of the bar, eleven Briggs–Rauscher oscillations average 248.00 s apart against its mechanism's 248.04, the Turing wavelength is within one FFT bin of the model's, and every pixel's colour is the Beer–Lambert integral through the species' spectra. It catches twenty-three models that are wrong on purpose and one-character sabotage of its own code, and all 56 parameters change the picture. The limits: about thirty constants are stand-ins where no published value could be found, each named in the repo's docs/CHEMISTRY.md. Briggs–Rauscher runs stirred only, and its model's period is minutes where a demonstration's is seconds. The trigger-wave speed rises with acid faster than Field and Noyes's law says it should. The chameleon shows no blue, because permanganate and manganate come out grey through their spectra. And the chemoconvection cells aren't in this version. The macOS build is signed and notarised. There's a user guide and a browser demo that runs the plugin's own code as WebAssembly, but no presets and no OpenFX port. Try it in your own rig before you trust it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead