Surface-Stable Fractal Dithering

I invented a new form of dithering. I call it surface-stable fractal dithering.

What's unique about it is that the dots in the dither patterns stick to surfaces, and yet the dot sizes and spacing remain approximately constant on the screen even as surfaces move closer by or further away.

What's special about that, and how does it work? I made a video about that, and it turned out to be my all-time most popular video! Watch it here:

A bit later, I made this demonstration video that shows a variety of aestetic styles that can be achieved with Surface-Stable Fractal Dithering. It's synced to groovy music, so please watch with sound on! This video was quote popular too.

I made my implementation of surface-stable fractal dithering open source!

Find the shader source and example project here:
Source repository on GitHub

See the FAQ here for commonly asked questions:
FAQ on GitHub

Also see the implementations and experiments by others who got inspired:
Discussion thread on GitHub

I myself was inspired by the style in the game Return of the Obra Dinn:
Obra Dinn website

Background

In 2018 Lucas Pope released the game Return of the Obra Dinn. Besides being an excellent detective game - the best I've ever played in fact - it also had a novel aesthetic, where the world is rendered entirely in black and white, using image dithering to convey shades of gray.

Lucas came up with the idea to map the dither pattern to a sphere centered around the player’s head. This way, the dither is pinned to the geometry during camera rotation but not during camera translation. This was a compromise, but one he found quite acceptable and a good fit for the game.

I think it was a good choice - the game looks great - but it did plant a seed of an idea in my head:

Would it be possible to somehow make a dither pattern that would be stable even under camera translation, yet have a consistent scale on the screen? I had a feeling it should be possible.

Five years later, I decided one day to just try it out. Surface-Stable Fractal Dithering is the result of that experiment. There's much more detail in the explainer-video above.