Ferrofluid
Ferrofluid spikes on the beat, for Resolume

What it does
Two FFGL plugins for Resolume Arena and Avenue in one download. SW Ferrofluid is a source: a dish of ferrofluid under a photographer's soft boxes. SW Ferro Over is an effect: the same pool, seen from above, with your clip on a screen hung over it, broken up in the fluid's mirror.
Ferrofluid is oil full of magnetite particles about ten nanometres across. Put it in a strong enough field and the flat surface can't hold: it stands up in spikes, all at once, on a hexagonal lattice about a centimetre apart. That's the Rosensweig instability, and the plugins are the three things it needs. The drive is a bias plus the music, kicked on every beat, onset or press of Fire, through a coil that lags. The magnet is a Helmholtz pair, one solenoid under the dish or three. The fluid is Ferrotec's EFH1 or EMG 901 or 909, off their datasheets.
None of it is drawn. The pool's surface obeys the linear theory exactly, mode by mode, so the spikes come up at the speed that much drive gives, at the critical wavelength however loud it gets, outward from the middle of a coil. The onset is subcritical, so once up they hang on until the current falls to the fold: 7% below onset for EFH1, which is why the default bias keeps them standing between kicks. Each spike is the fluid's own equilibrium spike at the field it stands in, solved offline with its real magnetisation curve, gravity and surface tension: round and low just past onset, a sharp cone with a concave skirt at the top of the drive.
The fluid is a black mirror, about 4.5% reflective, so what you see is what it reflects: the studio's lights in the source, your clip in the Over, and every spike's neighbours spreading from its base like wings, which is most of what makes photographs of ferrofluid look the way they do.
- A source (a dish in a studio) and an Over effect (your clip in the fluid's mirror) in one download
- Spikes on the beat, half beat, two beats, the bar, an audio onset or a press of Fire, through a coil with a real L/R lag
- Three fluids off their datasheets: Ferrotec's EFH1, EMG 901 and EMG 909
- A Helmholtz pair, one solenoid or three, each following its own band of the music
- Every spike the shape solved offline for that fluid at that field, with the full nonlinear magnetostatics
- Hysteresis as the real fluid has it: up past onset, down at the fold
- Seven lighting setups, tilt from straight down to 60°, and a mirror that's the exact Fresnel reflectance of the fluid
- Universal macOS bundles and Windows x64 DLLs
Where it stands
v0.1.0, and early days. It has been loaded into Resolume Arena 7.28.1 on macOS and driven there over Arena's REST API: both plugins register, every control that doesn't need sound changes Arena's output, Fire On follows Arena's beat, and the Over at Mix 0 hands its clip back to the bit. On Windows it has been in Resolume too, from the Windows download itself: in Arena 7.27.1 on software rendering (no GPU), where the pool runs at about a tenth of a frame a second, both plugins load and register with every parameter as declared, and SW Ferrofluid renders and passes the fleet's Arena checks with no dead control. SW Ferro Over's picture couldn't be measured there, as Arena's capture went black for the bare clip too. An offline harness driving the real plugin code measures the pool: every mode of the surface grows or rings at the Cowley–Rosensweig rate to 1.3e-5 of its height, EFH1's flat pool goes unstable within a quarter of a per cent of the theory's current, the harness reproduces Mahr and Rehberg's measured critical field, and the settled lattice sits at the critical wavelength with its peaks 60° apart. Each spike's shape is solved offline with the full nonlinear magnetostatics, and the solver matches Gollwitzer et al.'s X-ray measurements of a real pattern to within 1.1%. It catches twenty-one models that are wrong on purpose and seventeen one-character sabotages of its own code, and every control with pixels changes the picture. Where the spikes stand and how far they've grown is still a chosen model, fitted to the solver; over a coil held steadily past onset it lays down rows of spikes where a real pool makes hexagons. No real music has reached it in a host, and no GPU but one Mac's has run it. The macOS build is Developer ID-signed and notarised. There's a user guide and a browser demo, 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