Stoatworks Labs

Crumple

Your clip, printed and crumpled, for Resolume

Betav0.1.0Plugin & ModuleC++ / GLSL
Crumple — Your clip, printed and crumpled, for Resolume
Crumple

What it does

An FFGL effect for Resolume Arena and Avenue. The clip is printed on a sheet that gets crumpled under a desk lamp, big folds first and then smaller ones inside them, and it can be smoothed back out again. Crumpled paper is facets and creases. Each facet is flat, because a sheet will bend one way without stretching but not two, and the facets meet along straight creases. The sheet here is exactly that, up to four generations of it added together.

Where the sheet tilts, the print on it has to come from somewhere. The ink doesn't stretch with the paper, it gets pulled in. The plugin solves the in-plane displacement that keeps the sheet unstretched, one Fourier mode at a time, and reads the print from where the sheet pulled it, so a straight line crossing a crease bends there. That kink is what gives real crumpled paper away, and no texture laid over a picture can make it.

Each facet catches the lamp at its own angle, normalised so a flat sheet is exactly the picture. The ridges throw shadows when the lamp is low, and the fibres that break along each crease are measured on the crumpled sheet, so Flatten smooths the paper and leaves the marks, as anyone who's tried to flatten a receipt will know. Crumple is made to be animated, and the audio can scrunch the sheet in time with the music.

  • Up to four generations of flat facets and straight creases, big folds first
  • The print pulled in where the sheet tilts, so it kinks at every crease
  • Crumple and Flatten to animate: the crease marks stay when the sheet is smoothed
  • A lamp with elevation, azimuth, ambient, shadows and sheen
  • Audio Scrunch: the level and each kick crumple the sheet further
  • Height, Normals and Stretch views
  • Universal macOS bundle and a Windows x64 DLL

Where it stands

v0.1.0, and early days. It's been loaded into Resolume Arena 7.27.1 on Windows, on a software rasteriser in a VM with no GPU: Arena registered and listed it, all 26 controls came back as declared, it rendered, every one of the 22 swept controls moved the picture, and Arena logged no errors. It has never been loaded into Arena on macOS, and I know nothing about its performance on Windows. Offline, tools/verify.sh measures the sheet: across a ridge the print pulls in by the amount the geometry says, to within 1.1e-4 of the frame and with no sideways stretch, each facet is lit by Lambert's law, a ridge's shadow ends where it should, Crumple 0 is exactly the picture, and every host GL binding comes back as the host left it. Six models broken on purpose are all caught, and all 20 controls change the picture. Render cost on macOS is 0.1–0.3 ms a frame for a still sheet and 2.3–2.9 ms for a moving one, 720p to 4K. The stretch is the small-slope approximation, and the sheet is a heightfield that never folds over itself. No real audio has reached it in a host. There's a browser demo, which is a port rather than the plugin, but no OpenFX port and no user guide. Try it in your own rig before you trust it in a show.

Watch it running

Crumple video thumbnail

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