■ huff Features How It Works Output Docs →
--:--:--
huff — real-time datamosh & glitch-art
_
huff icon
huff
Real-time datamosh & glitch-art for desktop.
Load a video or webcam. Sculpt it live.
v1.0.2-beta macOS Windows
Paid license includes macOS Universal DMG & Windows x64 installer.
About
huff is a desktop application for creating real-time datamosh, glitch-art,
and feedback effects. Load a video file or connect a webcam, then sculpt
the image through a live effect chain.

Two-window architecture: a controls panel and a separate fullscreen output
window connected over a local WebSocket relay. The output window can be
sent to a projector, recorded in OBS, or shared to VJ software via
Syphon (macOS) or Spout (Windows).

Built for performers and artists who need a tool that behaves predictably
under pressure — MIDI-mappable, OSC-receivable, hot-swappable mid-set.
Features
DATAMOSH
Temporal tile displacement from a 60-frame ring buffer. Cluster physics, spatial gap, smear, depth scatter.
FEEDBACK LOOP
Zoom, translate X/Y, and rotate the buffer back onto itself each frame. Creates drift and rotation tunnels.
FLOW WARP
Noise-field UV distortion with pulse and implosion modes. Liquid or heat-haze displacement.
SYMMETRY
Vertical, horizontal, or both axes with a moveable split position.
SOLARISE
Luminance-threshold colour inversion with per-channel R/G/B multipliers.
SCANLINE BANDS
Drifting horizontal displacement bands sampled from past frames. Gap quantisation and skew.
TRAILS
Stacked ghost frames with luma keying for motion smear.
CAMERA INPUT
Live webcam feed alongside or instead of video files.
SYPHON (macOS)
Metal texture sharing. Resolume, VDMX, MadMapper, CoGe, Millumin. Framework bundled — no separate install.
SPOUT (Windows)
D3D11 texture sharing. Resolume Arena, TouchDesigner, MadMapper. Requires Spout2 runtime.
MIDI
Full CC/note input via native Rust midir. JSON map files. USB hardware + virtual ports (IAC / loopMIDI).
OSC
UDP listener on port 9000. JSON map files. TouchOSC, Max/MSP, Pure Data, SuperCollider, TouchDesigner.
PRESETS
Save/recall named parameter snapshots. 7 factory presets: clean, chaos, melt, mirror, pulse, solar, vapor.
How It Works
SOURCE (video / webcam)
[1] SCANLINE BANDS — horizontal displacement from ring
[2] FLOW WARP — noise-field UV distortion
[3] GLITCH — tile displacement from ring buffer
[4] FEEDBACK — previous frame zoomed/rotated back
[5] SYMMETRY — axis mirror
[6] SOLARISE — luminance-threshold inversion
[7] TRAILS — ghost frame blend
[8] BASE VIDEO MIX — raw source composited on top
RING BUFFER UPDATE — frame written for next pass
OUTPUT → WebSocket relay → Canvas / Syphon / Spout
Each pass is independently toggleable. Disabled passes are completely skipped — no bleed-through. All controls (sliders, MIDI CC, OSC) write directly to DOM elements. The p5 draw loop reads them on every frame — no debounce, no interpolation layer.
ResolutionBytes/frameMax frames (quality=1)
720p (1280×720)~3.7 MB51 frames
1080p (1920×1080)~8.3 MB23 frames
1440p (2560×1440)~14.7 MB13 frames
4K (3840×2160)~33.2 MB5 frames
720p or 1080p is the practical sweet spot. At 4K the ring holds only 5 frames — temporal effects lose most of their depth. Ring is capped at 192 MB total.
Video Output
MethodPlatformCompatible WithNotes
SyphonmacOS only Resolume, VDMX, MadMapper, CoGe, Millumin, Modul8, Max/MSP Jitter Framework bundled. No separate install. Metal texture sharing.
SpoutWindows only Resolume Arena, TouchDesigner, MadMapper, Notch Requires Spout2 runtime install. D3D11 shared texture.
Canvas windowAll platforms OBS, browser, projector direct Opens automatically. Press F for fullscreen. Openable in any browser on LAN.
CPU round-trip on Syphon/Spout: getImageData() → loopback WebSocket → GPU re-upload. Not zero-copy. Works reliably at 720p/30fps. 4K is not practical via this path — use OBS window capture instead.