Stoatworks Labs

Containment

A plasma ball in a magnetic bottle, for Resolume

Betav0.1.0Plugin & ModuleC++ / GLSL
Containment — A plasma ball in a magnetic bottle, for Resolume
Rendered by the plugin's own offline harness in a headless GL context — not a Resolume screen capture. Real frames through the real shipped plugin class.

What it does

An FFGL effect for Resolume Arena and Avenue. A plasma is a gas hot enough that its atoms have come apart, and charged particles can't cross a magnetic field, so a field can hold a plasma the way a bottle holds a gas. Containment turns the clip into that sort of plasma, a hot, dense ball, and holds it in the field of real coils standing outside the picture.

None of it is drawn. The plasma follows compressible ideal magnetohydrodynamics in 2.5 dimensions, solved on the GPU every frame with MUSCL–Hancock, the HLLD Riemann solver and GLM divergence cleaning. The clip's colour is frozen into the plasma and carried along with its mass, and the ball glows as ρ²√T, which is how a thin, hot plasma radiates.

Each part of the look is one term in the equations. The ball's pressure pushes outwards and the field pushes back, so it swells and rings until its edge sits at β ≈ 1. The curve of a real bottle's field acts like gravity pointing out of the ball, so the edge breaks into Rayleigh–Taylor fingers, but only at the sizes field-line tension allows. A multipole bottle leaks through its cusps as jets, at the angles the coils predict. Quench the coils and the ball free-expands as a fireball.

Six presets get you a whole bottle in one go: the clip's own orb, an orb in the green of the oxygen aurora line, a theta-pinch bubble, a cusp leak, Rayleigh–Taylor fingers and the quench fireball. Ignite, Pellet, Fuel and the coils' spin keep it going through a show.

  • 2.5-D compressible ideal MHD on the GPU: MUSCL–Hancock, HLLD, GLM cleaning
  • A bottle of real coils: 0, 4, 6, 8 or 12 poles plus a guide field, turning slowly
  • Curvature drives Rayleigh–Taylor fingers; the cusps leak as jets
  • Ignite, Pellet, Fuel and Quench, with an audio-driven heat and pellets
  • Wall or Open vessel; Detail from 128 to 1024 cells
  • Hot and Aurora temperature ramps, glare, field lines lit by the plasma
  • Six presets, from the Clip Orb to the Quench Fireball
  • Universal macOS bundle and a Windows x64 DLL

Where it stands

v0.1.0, and early days. It's never been loaded into Resolume on macOS. 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 and every control the test could reach moving the picture, over two runs. The three audio controls couldn't be tested there. The physics is measured offline, by a harness driving the real plugin and its shaders: the Brio–Wu shock tube puts all five waves within a cell of an independent double-precision solution, an oblique Alfvén wave travels at the right speed, magnetic Rayleigh–Taylor fingers grow at the textbook rate, a hot ball leaks within half a degree of the cusp angles, the quench front moves at the Riemann speed, and mass and energy are conserved to round-off in a closed vessel. It catches eighteen models broken on purpose and a one-character sabotage of its own shader, and all 33 controls change the picture. At the defaults it costs about 8 ms a frame at 1080p on macOS, and it's the grid that sets that, not the raster. Some terms are modelling choices rather than textbook ideal MHD (a dual-energy switch, curvature as an effective gravity, an absorbing margin for the Open vessel), and it's 2.5-D, so no kinks and no tokamak, I'm afraid. There's a user guide and a browser demo, which runs the plugin's own shaders at Detail 128 by default, but no OpenFX port. Try it in your own rig before you trust it in a show.

Watch it running

Containment video thumbnail

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