Back to all projects

Dither Plugin

A professional-grade dithering plugin for After Effects with GPU kernels written to keep all of it running in real time.

Private repositoryAfter Effects SDK, C++, CUDA, Metal2026

4

Algorithm Families

Error diffusion, ordered dithering, halftoning and FM modulation.

60 FPS

Real time

On 1080p footage, on an Apple M3 with 8 GB of RAM.

30+

Presets

Dithering patterns, plus 20+ colour palettes and palettes taken from any image.

6

Editable stages

From sampling and preprocessing to palette and smoothing, every parameter exposed.

Overview

Twelve years in After Effects, and still no dithering plugin I wanted

After Effects is the software I have used the most, for over twelve years. I have also built several plugins for it, usually to solve problems that existing tools did not address. Dithering is one of them.

Existing dithering plugins generally offer only a few algorithms and basic controls. I wanted full control over the process, with each stage of the pipeline exposed and editable.

Dithering is also the kind of subject I enjoy for its own sake. There is a lot of genuinely creative coding in it (FM modulation dithering in particular), with algorithms that are unusual enough to make the implementation interesting.

Approach

Making sequential algorithms run in parallel

The constraint I set at the start was real time performance. An effect you have to render to preview is an effect you stop experimenting with, and experimenting is the whole point. Real time means the GPU and thus parallelization.

But dithering algorithms like error diffusion are inherently sequential: each pixel depends on the error propagated by previous ones. Rewriting these algorithms for thousands of threads without losing their characteristic look was the hardest and most interesting part of the project.