FFGL Effects for Resolume >2

Same story as on the FreeFrame 1.0 side: I'm a VJ who builds the effects I'm missing. That set was for my old Resolume 2.41 rig — but most other VJs and venues I run into these days are on a modern Resolume instead, so the same itch needed a second life as real 64-bit FFGL plugins rather than just staying a 2.41-only thing.

64-bit FFGL plugins for modern Resolume (7.x), built on top of Resolume's own FFGL SDK, made with Claude — same collaborator, same spirit, different (64-bit, GPU-texture-based) plugin API. Cross-compiled to Windows from Linux using MinGW; see the repo's build-windows-mingw.sh scripts and README for the officially-supported Visual Studio / Xcode workflow.

Install: copy a .dll (and, for ISF Browser / ISF Effect, any .fs shader files you want it to find) into %USERPROFILE%\Documents\Resolume\Extra Effects\, then (re)start Resolume.

Sources vs. effects: ISF Browser and videopong.net are sources — find them in the sources panel and drop them into a clip slot. FrameDiff, ColorReduce and ISF Effect are effects — drop them onto a clip, layer, or the master effect slot.

Source code:

Plugins:
FrameDiff preview
Effect
FrameDiff

Subtracts a delayed copy of the frame from the current one — motion lights up white, still areas go dark. The delay is a ring of up to 30 GPU framebuffers: pass 1 unpremultiplies the live input into this frame's ring slot, pass 2 diffs that slot against the delayed one with a Rec.601-luma + Hardness contrast curve.

Frame Delay : 1-30 frames Hardness : 0-100%
Download FrameDiff.dll
ColorReduce preview
Effect
ColorReduce

Finds the N most dominant colours in the frame (a coarse 6x6x6 histogram) and remaps every pixel to its nearest one. The histogram step is inherently whole-frame, which doesn't fit a single stateless GPU pass — this reads the input texture back to the CPU once per frame and runs the histogram/top-N algorithm there, then a GPU shader does only the final per-pixel remap against the resulting palette. That CPU readback is a real (if usually small) performance cost compared to a pure-GPU effect.

Colors : 2-64 Pal.Rotate : 0-100%
Download ColorReduce.dll
Source
ISF Browser

Loads and hot-swaps ISF/GLSL generator shaders from disk — no build tools needed on the Windows side. Drop ISFBrowser.dll and any number of .fs files into the same Resolume plugins folder; a native option dropdown lists every shader found. Every one of a shader's own ISF INPUTS becomes its own real, named, ranged Resolume parameter automatically — no popup window, no background thread, everything lives in Resolume's own parameter panel.

Shader : native dropdown, scans the plugin's own folder up to 16 dynamic parameters, one per shader INPUT
Download ISFBrowser.dll

Generator shaders (compatible with ISF Browser) from this project:

Not included here: shaders using ISF's multi-pass PASSES/PASSINDEX/ IMG_PIXEL features (e.g. a raymarched "sandwich supernova" scene this project also has lying around) — neither ISF Browser nor ISF Effect implement multi-pass yet, only a single fragment-shader pass per shader.

Effect
ISF Effect

Effect sibling of ISF Browser: same scan-a-folder-of-.fs, dynamic-native-parameters design, but applies to a clip/layer instead of generating standalone. A shader's own ISF "TYPE": "image" input (by convention named inputImage) is bound to the plugin's actual incoming video each frame; every other float/bool/long INPUTS entry still becomes its own named, ranged Resolume parameter automatically. Shaders with no image input still load fine — they just ignore the incoming video (a generator used in an effect slot).

Shader : native dropdown, scans the plugin's own folder up to 16 dynamic parameters, one per shader INPUT
Download ISFEffect.dll

Filter shaders (declare an image input, made for ISF Effect) from this project:

Any of the generator shaders listed under ISF Browser above will also load into ISF Effect (they just won't react to the incoming clip).

Source
videopong.net

Finds and plays clips from videopong.net directly inside Resolume. "Browse Clips" opens a popup window to search and pick a clip, which then downloads and plays. Statically linked against FFmpeg for decoding, so nothing else needs to ship alongside the plugin. The only one of these plugins whose Linux cross-compile needs the posix-threads mingw-w64 variant specifically (its background download/decode threads need working std::thread/std::mutex) — see the plugin's own build-windows-mingw.sh for the full toolchain requirement.

Browse Clips : opens the clip-search popup Open Cache Folder : opens the downloaded-clips folder Play : on/off Loop : on/off
Download VideoPong.dll