Dithering in Processing


To be honest, we’ve heard of dithering but that’s the extent of our knowledge on the topic. After looking through [Windell's] post about using Dithering in Processing we can now say we’ve got a base of knowledge on the topic.

Dithering is used to produce an image out of two colors that our eyes can put together into something meaningful. The history of the algorithms goes back to monochrome displays. But now the hobby electronics we work with for fun have comparable computing power and perhaps it’s time to rediscover these techniques. [Windell's] project implements the Atkinson dithering algorithm in real-time on your webcam. He’s doing this in Processing, which should make it pretty easy to port for your own purposes.

So why might you want to use dithering in your own projects? Because if it can be used to make very cool milled artwork there must be other undiscovered uses lurking around your workshop.



  1. Hirudinea says:

    I’ed like to make a dithered display using red and green instead of black and white just to piss off the colourblind.

  2. Remarknl says:

    Dithering is being used by almost everyone, every day. In printers..

  3. Spooler says:
  4. jmptable says:
  5. macegr says:

    I love how things that used to be a necessity due to poor technology are fast becoming a desirable aesthetic.

  6. Joejoedancer says:

    You can do this with Photoshop but why would you? I don’t know whats worse, seemingly smart people bringing back dithering or the NFL ditching the kickoff. Somebody save us!!!

  7. luckybot says:

    Plasma TVs use dithering.

  8. Anonymous says:

    Floyd–Steinberg or bust!

  9. draeath says:

    Dithering is not just for 2 colors, and it is not just for images.

    Used in audio all the time, and could be used for any other kind of sampled data.

  10. I put a dithered image at the back of a pcb and it turned out rather good.


  11. macegr says:

    Here’s a version that’s quite a bit faster, accessing pixels using the point() command is pretty slow versus accessing the pixel array directly: http://pastebin.com/A33DsRMt

  12. gs611 says:

    Oh how I thought this was the dithering that I use most days:


  13. squalyl says:

    the post’s picture uses a pretty bad algorithm which produces diagonal stripes, there are better ways to dither an image.

    • macegr says:

      That is actually a problem compared to most examples of Atkinson dithering I’ve seen. I haven’t been able to track it down, might be the way Java handles integers or something…Atkinson usually makes little round squiggles and zigzags.

  14. bigglespip says:

    Revisiting techniques from the old days is becoming a theme, I was messing with the idea of using 16-bit High Colour on my Christmas lights (RGB LED string and MSP430 Launchpad) to save memory, it was a lot of fun. I found that 16-bit (5 red, 6 green and 5 blue) works much better then 15-bit for making colors, but fading it without using float is hard as!!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,382 other followers