February 2, 2009

I wrote it, you made it: Histoface

The previous “I wrote it, you made it” posts have been examples of people who executed an idea I proposed. But this time I’m writing about people who took one of my ideas to another level altogether.

In September, 2007, I demonstrated how an image can be hidden in the histogram of another image. The example I used was the New York City skyline…

…hidden in the histogram of a simple gradient:

I followed that up by writing about Josh Millard, a reader who figured out how to embed the histogram in a more recognizable picture than just a gradient. He was able to embed the NYC skyline histogram in the original source image of the NYC skyline!

But I never wrote about what Stewart Smith did with this concept. He took the idea in a different direction, wondering if it would be possible to embed an actual word or phrase in the histogram of an image. So he developed Histoface, a web app that allows you to generate a gradient which contains a secret message in the histogram.

So this image…

…has this histogram:

It should be obvious that it says “STARWARS” but unfortunately not all the letters in the typeface are as easy to recognize as these. It’s difficult to create recognizable letters that work in a histogram. But I give Stew major credit for making it this good!

I’d love to see a combination of Stew’s project and Josh’s project, allowing you to type a message and hide it in the histogram of any grayscale image. Who wants to work on that?


And to make it less obvious what you are doing, the C-M-Y channels can be any arbitrary information. Color images!

Just saw this over on stewdio, and it made my morning. I told Stew as much, but this is an idea I just didn’t have the patience or design sense to execute myself.

The character design challenge is really a toughie given the constraints of the histogram aesthetic, and I think he did a great job. And while a lot of the characters remain ambiguous, the redundancy of natural alphabetic language representation should help compensate a bit — that “t” isn’t exactly clear by itself, but STARWARS is definitely STARWARS, etc.


Has anyone thought of doing bar code this way? That would be super easy.

Hey :) I was just talking about Histoface the other day explaining that it started when I read your (David’s) original histogram post, then read your (Josh’s) response. I was instantly hooked on the idea of histogram art! Thank you both for being inspiring!! And yes, making character shapes that are both legible and actually representable by a histogram is painful. Could easily be a life-long musing.

I wonder if a tilted font would work? Incline the typeface to the right (or left) about 30 degrees from plum to expose some of the features of letters that might otherwise be hidden by histogram-induced “shadows”.

I had this other idea that might be fun: a Photoshop Action or Apple Script that opens the Levels window and sequentially loops through C, M, Y, K levels. You could have a 4 frame looping animation! (Or 3 if you’re just that hardcore into RGB, HSV, etc.) A panning city scape? Scrolling marque message? So if anyone’s good with macro scripts that would be fun to see.

You may be interested in this puzzle from last year’s MIT Mystery Hunt. (Click “check answer” to see the answer.)

@Lance, nice puzzle! Can you get me an inside tour of fun stuff at MIT? Saw the Media Lab really quickly in 2004 or so. They have such a culture of secrecy and puzzles ;)

Maybe you can show us harder than that “starwars”but i must admit,that was good..=)nice post..

Paul Heckbert, who I think is at Pixar, did something like this back in the 1970s using an NTSC television signal monitor. You’d put up a black and white image on the TV monitor, and he’d mash up the gray levels and the image would appear on the signal trace. Ask someone who is old enough to remember analog television how this works.

This could be a faboulous copyright solution :)