Dithering – Part 1
20 comments
·October 29, 2025joefourier
hatthew
[delayed]
jarjar2
Two videos from Daniel Shiffman's Coding Train:
Turning Images into Dots: The Magic of Dithering https://www.youtube.com/watch?v=0L2n8Tg2FwI
Coding Challenge 181: Weighted Voronoi Stippling https://www.youtube.com/watch?v=Bxdt6T_1qgc
K0IN
Hei, if someone wants to implement this, feel free to contribute this to my Phomemo M02 (a cheap < 15$) black and white thermal printer, web app.
glimshe
We had another dithering post a few days ago and nobody answered my question... I'm reposting in case someone who comes here knows the answer:
"Does anyone know of any application/tool that can perform palette dithering? The idea is "here is a n-color palette specified in their RGB values, here is the full-color RGB image, give me the best possible dithered image using the provided palette". The tools that I've used were underwhelming and produced results full of banding and artifacts.
Basically, great dithering in color instead of B/W."
gyomu
That’s going to be a tricky problem full of compromises, and entirely up to how you formalize your definition for “the best possible dithered image”.
Do you care about preserving relative brightness, contrast, edges,… etc.
Human color perception is tricky, and in the outline you give it’s entirely possible that the provided n-color palette (also, what order of magnitude n are we talking about here?) would be inadequate for a satisfactory rendering of the provided full color image.
anteloper
Good lord this is a beautiful web experience
estebank
Obligatory link to the in-progress forum post about the development of The Return of the Obra Dinn's dithering effect: https://forums.tigsource.com/index.php?topic=40832.msg136374...
The difficulty for dithering on an interactive 3d scene is in making the dithering stable on camera rotation, otherwise you get a twinkling stars effect, not dissimilar to the "fireflies" in reflections in ray-traced games.
m12k
And here's a couple videos about a technique that was inspired by the Obra Dinn's dither, but making it surface stable:
https://www.youtube.com/watch?v=HPqGaIMVuLs (explanation)
hackncheese
Somehow my first time seeing Visual Rambling, absolutely beautiful site
lampiaio
Few things brighten my browsing day as much as a virtual ode to dithering.
ChrisArchitect
There's a weird subset of graphic design grifters on social media obsessed with dithering right now.
Submission from the dev earlier https://news.ycombinator.com/item?id=45694750
hatthew
I don't think it's a negative thing, but I find it kinda funny that there's a new dithering article on HN at least once a month
Modified3019
Why do you think the term “grifter” applies here?
ChrisArchitect
not here as in HN, out on social posts.... some unhinged claims about inventing dithering trends and a lot of startup/techbro types putting the 'aesthetic' forward as the goto way to success. shrug.
Fraterkes
(For those who are confused, a few days ago on twitter some random graphic designer / webdev claimed that they started the trend of using dithering in modern graphic design. People made of fun of that person. All of that is unrelated to this post)
dbushell
those dithering perverts how dare they try to educate us with their fancy graphics!
seemaze
While I enjoyed the whole presentation, my favorite part after progressing through the entire deck was pressing my back button once and landing right back here on HN :)
kridsdale1
Same! I dreaded my history being filled.
null
Beautiful demo, but I’m not sure it’s accurate to call dithering an “illusion” of more shades than is available?
If you apply a low pass filter to a dithered image, and compare it to a low passed filtered thresholded, you’ll see that the “illusory” shades are really there in the dithered version, they’re just represented differently in the full resolution image.
Similarly, a class D amplifier emits purely off/on pulses before a low pass filter is applied, but no one would call the output an auditory “illusion”. In the case of image dithering, isn’t the low pass filter your own vision + the distance to the screen?