Burn My Desire
← All posts

Craft · 7 min read

Burning paper along a real front

How the fire got its glowing edge, and why we threw away three easier versions first.

30 June 2026 · The Burn My Desire team

The burn is the product. If it looks like a dissolve transition, the whole emotional argument collapses — you have not destroyed anything, you have faded a photo out. So we spent an unreasonable amount of time on about two seconds of animation.

Three versions that did not work

  • A cross-fade to black. Reads as a loading state. Nobody felt anything.
  • A particle burst. Looks like a game reward, which is exactly the wrong emotional register for a decision about drinking.
  • A noise-threshold dissolve. Closer, but the paper vanished uniformly across the whole image at once, and real fire does not do that.

What all three missed is that fire has a front. It starts somewhere, it travels, and everything interesting happens in the few millimetres at the leading edge — the glow, the char, the curl. Burning is a moving boundary, not a global fade.

The shader

The final version runs as a fragment shader. A fractal noise field is sampled per pixel and compared against a travelling threshold; where the noise falls below the threshold the pixel is gone. Because the threshold sweeps across the image rather than lifting everywhere at once, the boundary is a ragged line that moves — the front.

Then the interesting part: the same distance-to-threshold value drives three more effects layered on the boundary. Just past it, the paper darkens to char. On it, the pixel is pushed into the ember gradient and lit well past white. Just behind it, a subtle displacement curls the edge as if the sheet is buckling into the heat.

One value — how far this pixel is from being consumed — draws the glow, the char and the curl. Everything else is tuning.

Holding sixty frames a second

It runs on the GPU with a single full-screen pass and no render targets, which is what keeps it at 60fps on hardware going back several generations. The noise is computed rather than sampled from a texture, so there is nothing to load and nothing to ship in the bundle.

Other apps make you wait.
We give you closure.