Datamosh · all versions
Revision history
Every Datamosh release, newest first, with its notes as published. Each version's documentation stays online, so if you stay on an older release you can keep reading the pages for it.
Datamosh 1.0Read the 1.0 docs
v1.0.0
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Mosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
1.0.0 — the first licensed release
Datamosh now needs a licence key or a free trial from letissier.ie (see Licence below). The version jumps from 0.3.0 to 1.0.0; the plugin ids are unchanged, so compositions saved with 0.x open as before. Nothing about the effect itself changed between 0.3.0 and 1.0.0.
Where it stands
Everything here is verified by an automated test suite: 107 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, with Windows and macOS builds checked on every change.
It loads and runs in Resolume. The smoke test passed on a real host: both plugins register and instantiate, the effect renders, Resolume delivers parameter writes, the motion estimator is genuinely running, and wide-range parameters arrive at their real values rather than normalised.
What has not been done is the rest of the pass — the aesthetic sweeps, a 30-minute soak, GL-state hygiene in a chain, and the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Rehearse with it before you put it in a show.
What is new in 1.0.0
- Licence keys and a free trial. A new last parameter, Licence, on both plugins. Details below.
- Send Feedback. A button in a new Help section opens the feedback page in your browser, with the product and version already filled in.
- Crash reports — off unless you turn them on. If Resolume closes while
Datamosh is in the middle of a frame, the next launch notices and the Licence
field asks once whether to send a report: type
sendordiscard.always sendturns automatic reports on;reports offturns them off. A report never holds your licence key, email, name, file names or anything from your composition, andREADME.txtin the licence folder shows exactly what it does hold. - An error inside the plugin no longer reaches Resolume. It is caught, the
frame is passed through, and one
datamosh: error in ...line goes to the log. - A frame size the GPU cannot allocate is no longer retried on every frame; the plugin passes through and tries again a couple of seconds later.
Which version am I running?
macOS: Get Info on the bundle. Windows: Properties → Details. Both platforms: the end of the effect's description in Resolume, and the
datamosh:line in Resolume's log.The version is deliberately not in the plugin name.
Mosh Transplantalready uses all 15 characters FFGL allows, and Resolume addresses an effect by its name — a name that changed every release would be a saved composition that quietly failed to find its effect after an upgrade.Coming from 0.1.x
0.2.0 remapped several sliders so their travel does something across its whole length — Mosh Amount, Decay, Motion Threshold and Motion Smoothing — and merged Freeze into Motion Smoothing. A composition saved against 0.1.x will look different at the same slider positions. The full list is in the changelog.
Install
macOS — use the
.pkg. Double-click it and follow the prompts. It is signed and notarised, so there is no security warning, no Terminal, and no password — everything installs into your own Documents folder. Tick Arena, Avenue or both, and quit Resolume first, since it only scans for plugins at startup.The zip is still there if you prefer copying files by hand, but it needs the quarantine flag cleared afterwards — see the
INSTALL.txtinside it. That step is the whole reason the installer exists: macOS quarantines anything extracted from a downloaded archive, and Resolume then declines to load the plugins with no error at all.Windows — unzip and copy the DLLs into
Documents\Resolume Arena\Extra Effects, then restart Resolume. Nothing else. Earlier notes told you to right-click each DLL and tick Unblock — that applies to .NET plugins, not to these;LoadLibrarynever reads the mark. If the plugins do not appear, check whether Smart App Control is on, which rejects unsigned DLLs silently.Requires Resolume 7.3+; 7.4+ to see the Licence field's status in the panel (on 7.3 it is in the licence folder's
README.txtand Resolume's log). macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.Licence
Datamosh needs a licence key or a free trial from letissier.ie. Without one, a new Datamosh passes video through untouched and its last parameter reads Licence: locked, .... Type your key (
LT-DATA-...), or your email address for a trial, into that Licence field and press Enter; it unlocks within seconds, including effects already in the composition. An effect that is already running is never locked, and nothing waits on the network. Typefolderfor the licence folder and the request code for offline activation.Also typed into that field:
feedbackopens the feedback page, andsend,discard,always sendandreports offanswer or change the crash-report setting.Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Only the smoke test has been run against a real Resolume. The full pass —
aesthetic sweeps, soak, GL hygiene, the mixer — has not.
VALIDATING.md
is the procedure and
tools/collect-datamosh-diagnostics.{sh,ps1}gathers the evidence. Reports welcome. - Hold needs a key or MIDI mapping with Resolume's Piano option ticked to be a held control at all; the panel toggle latches, because a mouse cannot hold a checkbox down.
- The macOS installer is signed and notarised. The zip still needs the
quarantine flag cleared by hand — use the
.pkgunless you have a reason not to. Windows binaries are unsigned, which matters only for Smart App Control. - The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
Earlier releases
v0.3.0pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Mosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 57 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
It now loads and runs in Resolume. The smoke test passed on a real host: both plugins register and instantiate, the effect renders, Resolume delivers parameter writes, the motion estimator is genuinely running, and wide-range parameters arrive at their real values rather than normalised.
What has not been done is the rest of the pass — the aesthetic sweeps, a 30-minute soak, GL-state hygiene in a chain, and the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
What is new in 0.3.0
Three new controls, four fixes, and the version is now visible on an installed machine.
Mask Amount / Mask Invert — the brightness of the motion input decides where the mosh is allowed to stick. In Mosh Transplant that is the other layer, so a layer of scrolling text or a generator becomes a stencil that also drives the movement. Alpha comes along free.
Spread — damage that creeps outward into blocks that are not moving at all. Everything else here decides each pixel from this frame alone; this is the one control with a memory of what happened next door. Bring the level down and the frontier goes out first, so it retreats the way it came.
View — Result / Motion / Gate — ask the plugin what it is thinking. Motion draws the estimated field, with brightness on the same ruler as Motion Threshold. Gate draws the decision in four colours: black for no motion, red for rejected by the threshold, green for open, cyan where the creep has reached, grey where the mask is closing it. If nothing is happening, this answers why in one glance.
Fixes worth knowing about
- The Corrupt preset rendered nothing at all, and Quantise did nothing on ordinary footage — its dead zone covered everything slower than 3 px/frame at the default block size.
- The motion gate meant something different at every frame rate.
- An out-of-range dropdown value — which a composition saved by a later build can produce — crashed the plugin.
Which version am I running?
macOS: Get Info on the bundle. Windows: Properties → Details. Both platforms: the end of the effect's description in Resolume, and the
datamosh:line in Resolume's log.The version is deliberately not in the plugin name.
Mosh Transplantalready uses all 15 characters FFGL allows, and Resolume addresses an effect by its name — a name that changed every release would be a saved composition that quietly failed to find its effect after an upgrade.0.2.0 changes what saved values mean
Several sliders were remapped so their travel does something across its whole length — Mosh Amount, Decay, Motion Threshold and Motion Smoothing — and Freeze was merged into Motion Smoothing. Endpoints are unchanged; the middle moved. A composition saved against 0.1.x will look different at the same slider positions. Presets no longer set Mosh Amount, a fresh instance moshes gently rather than passing through, and Default in the Style list restores the factory panel. The full list is in the changelog.
Install
macOS — use the
.pkg. Double-click it and follow the prompts. It is signed and notarised, so there is no security warning, no Terminal, and no password — everything installs into your own Documents folder. Tick Arena, Avenue or both, and quit Resolume first, since it only scans for plugins at startup.The zip is still there if you prefer copying files by hand, but it needs the quarantine flag cleared afterwards — see the
INSTALL.txtinside it. That step is the whole reason the installer exists: macOS quarantines anything extracted from a downloaded archive, and Resolume then declines to load the plugins with no error at all.Windows — unzip and copy the DLLs into
Documents\Resolume Arena\Extra Effects, then restart Resolume. Nothing else. Earlier notes told you to right-click each DLL and tick Unblock — that applies to .NET plugins, not to these;LoadLibrarynever reads the mark. If the plugins do not appear, check whether Smart App Control is on, which rejects unsigned DLLs silently.Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Only the smoke test has been run against a real Resolume. The full pass —
aesthetic sweeps, soak, GL hygiene, the mixer — has not.
VALIDATING.md
is the procedure and
tools/collect-datamosh-diagnostics.{sh,ps1}gathers the evidence. Reports welcome. - Hold needs a key or MIDI mapping with Resolume's Piano option ticked to be a held control at all; the panel toggle latches, because a mouse cannot hold a checkbox down.
- The macOS installer is signed and notarised. The zip still needs the
quarantine flag cleared by hand — use the
.pkgunless you have a reason not to. Windows binaries are unsigned, which matters only for Smart App Control. - The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
v0.2.0pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Mosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 44 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
It now loads and runs in Resolume. The smoke test passed on a real host: both plugins register and instantiate, the effect renders, Resolume delivers parameter writes, the motion estimator is genuinely running, and wide-range parameters arrive at their real values rather than normalised.
What has not been done is the rest of the pass — the aesthetic sweeps, a 30-minute soak, GL-state hygiene in a chain, and the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
0.2.0 changes what saved values mean
Several sliders were remapped so their travel does something across its whole length — Mosh Amount, Decay, Motion Threshold and Motion Smoothing — and Freeze was merged into Motion Smoothing. Endpoints are unchanged; the middle moved. A composition saved against 0.1.x will look different at the same slider positions. Presets no longer set Mosh Amount, a fresh instance moshes gently rather than passing through, and Default in the Style list restores the factory panel. The full list is in the changelog.
Install
macOS — use the
.pkg. Double-click it and follow the prompts. It is signed and notarised, so there is no security warning, no Terminal, and no password — everything installs into your own Documents folder. Tick Arena, Avenue or both, and quit Resolume first, since it only scans for plugins at startup.The zip is still there if you prefer copying files by hand, but it needs the quarantine flag cleared afterwards — see the
INSTALL.txtinside it. That step is the whole reason the installer exists: macOS quarantines anything extracted from a downloaded archive, and Resolume then declines to load the plugins with no error at all.Windows — unzip and copy the DLLs into
Documents\Resolume Arena\Extra Effects, then restart Resolume. Nothing else. Earlier notes told you to right-click each DLL and tick Unblock — that applies to .NET plugins, not to these;LoadLibrarynever reads the mark. If the plugins do not appear, check whether Smart App Control is on, which rejects unsigned DLLs silently.Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Only the smoke test has been run against a real Resolume. The full pass —
aesthetic sweeps, soak, GL hygiene, the mixer — has not.
VALIDATING.md
is the procedure and
tools/collect-datamosh-diagnostics.{sh,ps1}gathers the evidence. Reports welcome. - Hold needs a key or MIDI mapping with Resolume's Piano option ticked to be a held control at all; the panel toggle latches, because a mouse cannot hold a checkbox down.
- The macOS installer is signed and notarised. The zip still needs the
quarantine flag cleared by hand — use the
.pkgunless you have a reason not to. Windows binaries are unsigned, which matters only for Smart App Control. - The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
v0.1.5pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Mosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 42 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
It now loads and runs in Resolume. The smoke test passed on a real host: both plugins register and instantiate, the effect renders, Resolume delivers parameter writes, the motion estimator is genuinely running, and wide-range parameters arrive at their real values rather than normalised.
What has not been done is the rest of the pass — the aesthetic sweeps, a 30-minute soak, GL-state hygiene in a chain, and the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
Install
macOS — use the
.pkg. Double-click it and follow the prompts. It is signed and notarised, so there is no security warning, no Terminal, and no password — everything installs into your own Documents folder. Tick Arena, Avenue or both, and quit Resolume first, since it only scans for plugins at startup.The zip is still there if you prefer copying files by hand, but it needs the quarantine flag cleared afterwards — see the
INSTALL.txtinside it. That step is the whole reason the installer exists: macOS quarantines anything extracted from a downloaded archive, and Resolume then declines to load the plugins with no error at all.Windows — unzip and copy the DLLs into
Documents\Resolume Arena\Extra Effects, then restart Resolume. Nothing else. Earlier notes told you to right-click each DLL and tick Unblock — that applies to .NET plugins, not to these;LoadLibrarynever reads the mark. If the plugins do not appear, check whether Smart App Control is on, which rejects unsigned DLLs silently.Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Only the smoke test has been run against a real Resolume. The full pass —
aesthetic sweeps, soak, GL hygiene, the mixer — has not.
VALIDATING.md
is the procedure and
tools/collect-datamosh-diagnostics.{sh,ps1}gathers the evidence. Reports welcome. - Hold needs a key or MIDI mapping with Resolume's Piano option ticked to be a held control at all; the panel toggle latches, because a mouse cannot hold a checkbox down.
- The macOS installer is signed and notarised. The zip still needs the
quarantine flag cleared by hand — use the
.pkgunless you have a reason not to. Windows binaries are unsigned, which matters only for Smart App Control. - The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
v0.1.4pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Mosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 40 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
It now loads and runs in Resolume. The smoke test passed on a real host: both plugins register and instantiate, the effect renders, Resolume delivers parameter writes, the motion estimator is genuinely running, and wide-range parameters arrive at their real values rather than normalised.
What has not been done is the rest of the pass — the aesthetic sweeps, a 30-minute soak, GL-state hygiene in a chain, and the mixer beyond instantiation. The tuning defaults have still never been judged against real footage. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
Install
Unzip and copy the plugins into
Documents/Resolume Arena/Extra Effects, then restart Resolume. Full instructions are in theINSTALL.txtinside each archive.macOS users: the bundles are not signed or notarised, so macOS quarantines them and Resolume silently will not load them — the plugins just never appear. Clear it with:
xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/Datamosh.bundle xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/DatamoshTransplant.bundleWindows users: right-click each DLL → Properties → Unblock, if Windows flagged the download.
Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Only the smoke test has been run against a real Resolume. The full pass —
aesthetic sweeps, soak, GL hygiene, the mixer — has not.
VALIDATING.md
is the procedure and
tools/collect-datamosh-diagnostics.{sh,ps1}gathers the evidence. Reports welcome. - Hold needs a key or MIDI mapping with Resolume's Piano option ticked to be a held control at all; the panel toggle latches, because a mouse cannot hold a checkbox down.
- macOS bundles are unsigned and unnotarised.
- The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
v0.1.2pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Datamosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 32 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
None of it has been run inside Resolume. The tuning defaults have never seen real video. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
Install
Unzip and copy the plugins into
Documents/Resolume Arena/Extra Effects, then restart Resolume. Full instructions are in theINSTALL.txtinside each archive.macOS users: the bundles are not signed or notarised, so macOS quarantines them and Resolume silently will not load them — the plugins just never appear. Clear it with:
xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/Datamosh.bundle xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/DatamoshTransplant.bundleWindows users: right-click each DLL → Properties → Unblock, if Windows flagged the download.
Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Not yet validated in Resolume; see the checklist in the README.
- macOS bundles are unsigned and unnotarised.
- The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.
v0.1.1pre-release
Two FFGL plugins that simulate datamoshing in Resolume, over a shared render core.
Plugin Where it shows up Datamosh Effects list — a layer, a group, or the composition Datamosh Transplant A layer's blend-mode dropdown — applies that layer's motion to the layers below 📖 Documentation · Parameter reference · Recipes
This is a pre-release — read this first
Everything here is verified by an automated test suite: 32 tests running a real headless OpenGL 4.1 context against synthetic footage with known ground truth, green on Linux, Windows and macOS.
None of it has been run inside Resolume. The tuning defaults have never seen real video. Treat this as something to try and report back on, not something to put in a show without rehearsing first.
Install
Unzip and copy the plugins into
Documents/Resolume Arena/Extra Effects, then restart Resolume. Full instructions are in theINSTALL.txtinside each archive.macOS users: the bundles are not signed or notarised, so macOS quarantines them and Resolume silently will not load them — the plugins just never appear. Clear it with:
xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/Datamosh.bundle xattr -dr com.apple.quarantine ~/Documents/Resolume\ Arena/Extra\ Effects/DatamoshTransplant.bundleWindows users: right-click each DLL → Properties → Unblock, if Windows flagged the download.
Requires Resolume 7.3+. macOS builds are universal (arm64 + x86_64), so Apple Silicon is native.
Why this 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 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 mid-set, and every stage becomes a parameter instead of an encoder setting.
What you get
All three classic looks from one pipeline:
- Melt — pixels stop refreshing while motion keeps flowing. With Auto Mode → On Cut on the composition, every clip change melts by itself.
- Bloom — freeze the vector field and motion piles up into flowing trails.
- Pixel drag — raise the threshold so only fast-moving blocks smear.
Softness carries it from hard macroblock tearing to smooth liquid flow. Style presets set a coherent group of parameters from one dropdown.
A Damage group exists to get the motion wrong on purpose — Motion Lag, Block Repeat, Quantise — because an accurate estimator reconstructs the frame, which is correct and far too clean to read as a broken codec.
Beat sync via Resolume's clock, and audio-reactive triggering via FFT.
Known gaps
- Not yet validated in Resolume; see the checklist in the README.
- macOS bundles are unsigned and unnotarised.
- The mixer carries an inherited
mixValslider that does nothing — use its own Mix parameter. It cannot be renamed away without making the plugin unloadable; the reason is documented in the architecture page. - Performance has only been measured on a software rasteriser. Run
datamosh_tests --profileon real hardware before committing to 4K.