Skip to content
Distortionary

Filter 03 · Dithering and old screens · 0.1 beta

Retrotastical

Twenty-five dithers, and the cable and tube they came through.

Error diffusion, ordered, clustered-dot and blue-noise dithering, to levels or to a real palette: Game Boy, CGA, PICO-8, Riso inks. Then, if you like, the picture goes down a composite cable, onto a worn VHS tape, and through a CRT with scanlines, a shadow mask and phosphor glow.

Retrotastical and Patterntastic were one filter, Dithertastical. It is now two: Retrotastical for dithering and old displays, Patterntastic for the shaped screens.

Try it on your photo Buy from $29

For GIMP and Photoshop.

  • GIMP 3
  • Photoshop
  • Desktop app
  • Command line · Enterprise
A curved concrete underpass lit by neon light trails, dithered in RGB and shown on an arcade monitor with scanlines.
Before After
Neon underpass. The arcade-crt preset: RGB dither, scanlines, a shadow mask and a light glow. Photo: Lei Hwang on Unsplash.
$ retrotastical underpass.png -p arcade-crt

The command that rendered it. Command-line tools come with Enterprise.

The real filter, compiled to WebAssembly. Nothing leaves your browser.

Photo: Lei Hwang on Unsplash.

Your image stays on your machine. The filter runs here, in WebAssembly.

1.00

5 steps, each doing one thing.

  1. 01

    Pixel art

    Optional. The image is redrawn as blocks on an even or edge-snapped grid, with thin lines kept and lone blocks cleaned up.

  2. 02

    Palette

    Levels per channel, a list of colors, a bundled palette (Game Boy, CGA, EGA, C64, ZX Spectrum, NES, PICO-8, Riso inks), or colors found in the image by k-means or median cut. Matched in OKLab, with lightness weighted against hue.

  3. 03

    Dither

    Twenty-five methods: Floyd–Steinberg, Atkinson and ten other error-diffusion kernels, Bayer matrices, clustered dots, line screens, blue noise, dot diffusion and Riemersma. Error can be carried in linear light and held back at edges. 1,2,3

  4. 04

    Signal

    Optional. NTSC, PAL or SECAM encoding over composite, S-Video or RF, with dot crawl, snow and mistuning; or a tape in VHS, Betamax, Video8, Hi8 or U-matic, several copies deep, with tracking errors and dropouts.

  5. 05

    Tube

    Optional. A CRT: phosphor color, scanlines, an aperture grille, slot or shadow mask, convergence error, curved glass and glare.

Every image here is a built-in preset, unchanged.

A fiery sunset over a lake, in the sixteen PICO-8 colors.
Before After
pico-8: sixteen colors through a 4×4 Bayer matrix. Photo: Eurico Craveiro on Unsplash.
Boston’s skyline at night over the harbor, in one-bit Atkinson dithering.
Before After
classic-mac: one-bit Atkinson, crisp and clipped. Photo: Lance Anderson on Unsplash.
Taxis on a Kowloon road in the four greens of a Game Boy screen.
Before After
game-boy: four greens, matched on tone. Photo: Fre Sonneveld on Unsplash.
The Boston skyline, soft and noisy, as if played off a VHS tape.
Before After
vhs-tape: standard play, color under, torn bottom lines. Photo: Lance Anderson on Unsplash.
The neon underpass on an amber monochrome terminal.
Before After
amber-terminal: P3 phosphor with a warm bloom. Photo: Lei Hwang on Unsplash.
The lake sunset in black, fluorescent pink, blue and yellow Riso inks.
Before After
riso-four-ink: four Riso inks on white paper. Photo: Eurico Craveiro on Unsplash.
The Kowloon taxis with red, green and blue each dithered to on or off.
Before After
eight-colors: each channel on or off. Photo: Fre Sonneveld on Unsplash.
Two bushbabies in one-bit Atkinson dithering.
Before After
classic-mac: fur in one bit. Photo: Hendrik Prinsloo on Unsplash.
The lake sunset as 6-pixel PICO-8 blocks.
Before After
pixel-pico-8: 6-pixel blocks, dithered whole. Photo: Eurico Craveiro on Unsplash.
Mountain ridges above a sea of cloud, as one-bit clustered newspaper dots.
Before After
newsprint: 45° clustered dots, in linear light. Photo: wildeagle z on Unsplash.
The misty peaks on a composite-video television.
Before After
composite-tv: soft luma, delayed color, a slot-mask tube. Photo: wildeagle z on Unsplash.

Every control, named.

The same names in every host and in the JSON presets. With an Enterprise license, the command-line tool reads those presets and runs them on a thousand files.

Name Range Effect
method 25 algorithms Error diffusion, ordered, clustered dot, blue noise, Riemersma.
levels 2–256 Output levels per channel. 2 is one bit.
channels luma · rgb Dither tone only, or each channel.
palette hex, inks, libraries, auto:n "pico8:*", "riso:fluorescent-pink", "auto:8+#fff".
strength 0–1 Share of the error spread, or reach of the Bayer matrix.
pixel-art 0–256 px Block size before dithering. Below 2 is off.
tape · encoding format, speed, connection The signal path from tape and cable.
tube phosphor, scanlines, mask The CRT it is shown on.
GIMP 3
A native GIMP 3 plug-in written in C, with the filter linked in statically. GIMP 3.0 or later, Linux and Windows.
Photoshop
A UXP panel running the filter as WebAssembly. Photoshop 2024 (25.0) or later, macOS and Windows.
Command line
Enterprise only. The same filter as a command-line tool, for batches, build scripts and render farms. Settings load from JSON presets.
  • Floyd and Steinberg (1976)

    An adaptive algorithm for spatial greyscale.

  • Bayer (1973)

    An optimum method for two-level rendition of continuous-tone pictures.

  • Atkinson (1984)

    The MacPaint and HyperCard dither. No paper was published.

  • Ottosson (2020)

    OKLab, where palette colors are matched.

  1. 1

    Jarvis, Judice and Ninke (1976). A survey of techniques for the display of continuous tone pictures on bilevel displays. Computer Graphics and Image Processing 5(1).

  2. 2

    Stucki (1981). MECCA: a multiple-error correction computation algorithm for bi-level image hardcopy reproduction. IBM Research Report RZ1060.

  3. 3

    Ulichney (1993). The void-and-cluster method for dither array generation. Proceedings of SPIE 1913. The blue noise.

Retrotastical alone, or the whole set.

The complete set: the 5 plug-ins' results side by side.

Best value

The complete set

$69 5 plug-ins, $145 separately

Every Distortionary plug-in: Bloomifier, Grungetyper, Patterntastic, Pixeltastic and Retrotastical.

  • Bloomifier, Grungetyper, Patterntastic, Pixeltastic, Retrotastical
  • GIMP: GIMP 3 (Linux, Windows); GIMP 2.10 (Linux, Windows)
  • Photoshop: UXP panel for Photoshop 2024 or later (macOS, Windows); 8bf filter for Photoshop and other 8bf hosts (Windows)
  • A year of updates included: every new version, free, under one license key
A portrait dithered to the four greens of a Game Boy screen.
Before After

Retrotastical

$29

Dithering: 25 error-diffusion, ordered and blue-noise methods, to levels or a palette, optionally through a damaged video cable and a CRT tube.

  • Retrotastical, Classic Mac Classic Mac
  • Retrotastical, Amber terminal Amber terminal
  • Retrotastical, Newsprint Newsprint
  • Retrotastical, Arcade CRT Arcade CRT

Includes a year of free updates

One-time purchase, no subscription, with a year of updates included. Sold through Gumroad. Sample photographs: thank you to Sandro Katalina , Rostyslav Savchyn and Raffaele Parente on Unsplash.