Here’s something crazy and pointless: did you know that LCD monitors draw single pixels by mixing three individual red, green and blue subpixels? It’s true! In fact, some devices (like mobile phones and handheld gaming devices) actually use this to anti-alias text and make borders more distinct. Microsoft even use it on laptops running windows with a technique called Cleartype.

I’ve made a little program that uses this technique to create a ridiculously small font, only visible on LCD monitors running at their highest resolution. Each letter is only 1 pixel wide and 5 pixels high, but should be legible nonetheless if you look really closely. Behold!

If you can read that, then feel free to check out the little program I wrote to generate it: my Sub-Pixel Message Generator. You can read more about it in these two TIGSource threads (1 and 2).

[Edit 24th Nov 2010]: Hi, ycombinator! If you’re having trouble reading this, a guy called alanfalcon on your comment thread took a photo of it so you can see what’s happening: https://www.flickr.com/photos/dafalcon/5204413187/in/photostream/

30 thoughts on “Sub-Pixel Message Generator”
  1. This technique could be useful in situations where your customer want something to be moved half a pixel to some direction.

  2. A quick FYI, this relies on the RGB ordering of pixels which are not the same for all screens. For example, your picture is a completely illegible mess of colors on my MacBook because the RGB ordering is different from the screen this image was created on.

  3. I turned my screens 90deg and of course it doesn’t work. But the idea is very cool. If you could create an alternative font that works for 90deg rotated screens, it could be used on tablets and phones and the like.

  4. @Merijn Funny because I just tried in a mackbook and could read it. Actually… I even had a harder time reading it in a Windows machine with an LG monitor.

  5. merijn: “A quick FYI, this relies on the RGB ordering of pixels which are not the same for all screens. For example, your picture is a completely illegible mess of colors on my MacBook because the RGB ordering is different from the screen this image was created on.”

    excellent, a whole new font for real people to communicate in and call mac users a bunch of faggots

  6. “excellent, a whole new font for real people to communicate in and call mac users a bunch of faggots”

    wow, you’re an asshole! mum forgot to pack your lunch today huh?

  7. “excellent, a whole new font for real people to communicate in and call mac users a bunch of faggots”

    wow, you’re an asshole, did your mom forget to pack your lunch?

  8. It didn’t work for me. I finally remembered that my monitor is turned 90 degrees to portrait mode (more code at a time!), so the pixels aren’t in the right order for me.

    An interesting exercise though 🙂

  9. I came to this years late, and I’m kind of sad that it doesn’t seem to work on retina displays. Good thing you added that photo!

  10. Striped RGB dependent = cheap and weak choice of type design (just to fool the novice from the subpixel magic)”¦
    Besides 3×5 is not this small nowadays, and I guess the featured ‘font’ is not even basic Ascii”¦
    My two cents: use a multicolor 3×4, 3×3 or smaller (basic Ascii) font without spacing instead”¦ it’ll stay very crisp on any surface (screen or not, today and forever).
    Bye!

  11. PS @Dan on 2010-11-25: yes, 2×4 basic Ascii is proved to be feasible on my side, though my 2×5 edition of it is a tad more readable. (The both designs needn’t the extra column spacing anymore, which compacts even more the lines -and breaks the code above-; and you can move the next line by one subpixel, if you really need to get rid of the line spacing too.) The only issue is about an incoherent shrinking (misconforming degradation, e.g. “m” as 3×3 if it cannot match “m” as 2×4″): This experiment and more soon (e.g. 2×3 -serious but non-Ascii attemps-), when I can release my own ‘micro’ font designs”¦

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.