DATAMOSH FFGL · Resolume 7.3+ · Windows & macOS

Two plugins, one render core

Datamosh for Resolume

Melt, bloom and pixel-drag driven by motion the plugin estimates for itself — on any source, at any resolution, with every stage of the breakage on a dial.

Live, in your browser: the same loop the plugin runs. While a burst is running, pixels above the line refresh from the source and pixels below it are only ever displaced along the estimated motion. That single difference is the whole effect. Every few seconds a keyframe lands and the image snaps back — which is what a triggered burst looks like.

Why it simulates rather than corrupts

Datamoshing works by breaking inter-frame compression — deleting I-frames so pixels persist, or duplicating P-frames so motion vectors keep applying to an increasingly wrong image.

None of that is reachable inside Resolume. Its playback path uses HAP and DXV, which are all-intra codecs: every frame is an independent compressed still, so there are no motion vectors anywhere to corrupt. Even with an H.264 source, an FFGL plugin receives a decoded texture, never the bitstream.

So this estimates the motion itself and then reproduces what a decoder that has lost its keyframe does with it. For live use that trades up: it works on any source including cameras and NDI, it cannot desync or fall apart mid-set, and every stage becomes a parameter instead of an encoder setting.

The three looks

All of them come out of one pipeline. What changes is when pixels are allowed to refresh, and what the motion field is doing when they are not.

Melt

Pixels stop refreshing while motion keeps flowing, so one shot dissolves into the next. The classic transition.

Mosh Amount up · Threshold at 0

Bloom

Freeze the vector field and keep applying it. Motion piles up on itself and the image explodes into flowing trails.

Freeze at 1 · Gain above 1

Pixel drag

Only blocks moving faster than the threshold smear; everything still stays sharp. Reads as motion trails rather than collapse.

Threshold up · Block Size 32

Softness carries the look from hard macroblock tearing to smooth liquid flow, from the same estimator. A Style dropdown sets a coherent group of parameters in one move, because reaching for twelve sliders is not something anyone does while a set is running.

The one thing worth knowing before you start

The motion estimator is accurate. That sounds like the goal and it is also the catch: displacing the previous frame by the estimated motion reproduces the current frame almost exactly. Correct — and far too clean to read as a broken codec, because real datamosh looks broken precisely because the vectors are wrong.

So there is a Damage group whose whole job is to be wrong on purpose. Motion Lag is the one to reach for first: it applies a vector field from several frames ago, so motion lands on content it does not belong to — the closest analogue to a decoder working from the wrong reference frames.

Install

Download the archive for your platform, copy both plugins into Documents/Resolume Arena/Extra Effects, and restart Resolume. Datamosh appears in the effects list; Mosh Transplant appears in a layer's blend-mode dropdown, not the effects list.

macOS — use the installer Download the .pkg, double-click, follow the prompts. It is signed and notarised, so there is no security warning, no Terminal and no password — it installs into your own Documents folder. Tick Arena, Avenue or both, and quit Resolume first, since it only looks for plugins when it starts. The zip is still there if you would rather copy files by hand, but it needs the quarantine flag cleared afterwards. That step is why the installer exists: macOS quarantines anything extracted from a downloaded archive, and Resolume then refuses to load the plugins with no error at all.

Windows — unzip, copy the DLLs into Documents\Resolume Arena\Extra Effects, restart Resolume. You may have seen advice to right-click each DLL and tick Unblock; that is real for .NET plugins, whose assembly loader checks the mark Windows puts on downloaded files, but LoadLibrary never reads it and Resolume loads these either way. The one thing that does block them is Smart App Control on Windows 11, which rejects unsigned DLLs silently.

Status This is a pre-release. Everything in it is verified by 42 automated tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, and it now loads and runs in Resolume — the smoke test passes on a real host. What has not been done is the rest of the pass: aesthetic sweeps, a soak, GL hygiene in a chain, the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Worth trying; worth rehearsing before a show.