The Dither is Naked!

     |\__/,|   (`\
    _.|o o  |_   ) )
 -(((---(((--------

Shown at Japan Media Art Festival && at H3K

If you don't want to read the whole text just click the following links to see the different stages of the project.

My first experience with dither was during my my first year of my Masters. During the first year I needed to print a gradient, but our printer was not good enough. The prints were full of artifacts due to the large amount of colors in a gradient. I decided therefore to use the Photoshop built-in tool for colour palette reduction. The tool provided various options to choose between different dither algorithms. This was the result I had while playing with the tool.

Proto Dither Image

WOW!

EYE BLEEDING!

But it was olnly one year later that I mastered the Floyd–Steinberg dithering algorithm. This was possible also thanks to Daniele Piccone, Daniel Temkin and their amazing work. Last and but not least this text about "digital halftoning, or dithering" was quite helpful to understand the mechanics of dithering. Floyd–Steinberg dithering works by using an error diffusion algortihm meaning it pushes (adds) the residual quantization error of a pixel onto its neighboring pixels.

It spreads the error according to some hard-coded values as follows:

[ ] [ ] [ ]
[ ] [*] [7/16]
[3/16] [5/16] [1/16]

The pixel with the * indicates the pixel being currently scanned by the algorithm.

Those values became my playground for the exploration of the dithering algorithm. My first step was to change the common divisor (16) of the those hard-coded values.

This lead to the creation of a Tumblr-Bot, posting dithered gradients with random values as dividend in the error quantization algorithm.

The next step was to create a Twitter-Bot, reacting to the #prettyDither hashtag, followed by two colors, i.e. #prettyDither red green.

In order to gain a better control over the algorithm I decided to control also the the divisor of the error quantization algorithm

I implemented this to control the the calculation of the quantization error among all the neighboring pixels, not only the 4 in use in the Floyd–Steinberg algorithm. this lead to the development of this website, that allows user to control each part of the algorithm. here some results

The interesting thing about the dithering algorithm is its camouflaging nature. What do I mean? A well-developed dithering algorithm should go unnoticed by the viewer's eye. Yet, curiously, when the same algorithm is applied to gradients, its camouflaging effect weakens, revealing the algorithm's structure in the form of colorful patterns. The additional control over the quantization error in the algorithm allows for a deeper analysis of the dithering process. Despite the visual results achieved by exploiting this algorithm, my interest also lies in its revelatory quality: how the project exposes the algorithm itself.