Lost in Translation

Posted in art, programming, projects, technology by johnsnavely on May 21, 2009

MonaTweeta II, originally uploaded by Quasimondo.

Skitch delicioused me this project, which I think is pretty cool. Basically, the challenge was to compress an image into a 140 tweet. The image description describes the process in more detail:

Preliminary result of a little competition with the goal to write an image encoder/decoder that allows to send an image in a tweet. The image on the left is what I currently manage to send in 140 characters via twitter.

This is the tweet for the image:
圑嘌婂搒孵怤實恄幖戰怴搝愩娻屗奊唀唭嚟帧啜徠山峔巰喜圂嗊埯廇嗕患嚵幇墥彫壛嶂壋悟声喿墰廚埽崙嫖嘵奰恛嬂啷婕媸姴嚥娐嗪嫤圣峈嬻尤囮愰啴屽嶍屽嶰寂喿 嶐唥帑尸庠啞彐啯廂喪帄嗆怠嗙开唅恰唦慼啥憛幮悐喆悠喚忐嗳惐唔戠啹媊婼捐啸抃岖嗅怲幀嗈拀唹坭嵄彠喺悠單囏庰抂唋岰媮岬夣宐彋媀恦啼彐壔姩宔嬀

I am using chinese characters here since in UTF-8 encoding they allow me to send 210 bytes of data in 140 chars. In theory I could use the whole character code range from 0x0000-0xffff, but there are several control chars among them which probably could not be sent properly. With some tweaking and testing it would be possible to use at least 1 or 2 more bits which would allow to sneak 17 or 35 more bytes into a tweet, but the whole encoding would be way more nasty and the tweets would contain chars that have no font representation.

Besides this char hack there are a few other tricks at work in the encoding. I will reveal them over time. For now I just mention the difficulties involved here:

A typical RGB color needs 24 bits which is 3 bytes. This means if you just stored raw colors you could send 70 colors. Unfortunately you couldn’t send anything else. At least that would allow you to send a 7×10 pixel matrix.

The worst way to store one full x/y coordinate would be 2 times 4 bytes, which is 26 coordinates in one tweet. That’s 8 triangles. Obviously you have to do some concessions with the precision here. 2 bytes per number maybe? Gives you 52 points or 17 triangles. Unfortunately those come without color info.

What I like about this project, other than the fact that you can send an image (albeit a pretty lo-res one) via twitter, is the unintentional text that’s generated from the compression. In this case the compression has to stay in the realm of text and therefore is still “readable”. In the comments for the image, one fan of this project has translated the Chinese characters that encode the mona lisa:

The whip is war
that easily comes
framing a wild mountain.

Hello, you in the closet,
singing–posing carved peaks
of sound understanding.

Upon a kitchen altar
visit a prostitute–
an ugly woman saint–
who decoys.

lonesome mountain valley,
your treasury: a dumb corpse and
funeral car, idle choke open.

exactly what you would call nervous.
Well, do not suggest recalcitrance
those who donated sad.

The smell of a rugged frame
strikes cement block once.

Where you?a
Cape. Cylinder. Cry.

It’s nice to see digital art that has multiple readings which are dependent on the medium itself. We still use the words “images” and “text” when we’re talking about the digital analogs of real world media.

But maybe they are qualitatively different?


3 Responses

Subscribe to comments with RSS.

  1. nina said, on May 22, 2009 at 4:57 am


    • johnsnavely said, on May 23, 2009 at 12:18 am

      Yeah, the project is about compressing an image into 140 chars and how to “optimize” the information in the image.

      But it really begs the question: why can’t you get an image and a beautiful chinese poem into the tweet? (i.e. “optimize” for both the text and the image)

  2. […] Lost in Translation I really like how the abstraction on the left carries a lot of visual resonance to Da Vinci’s Mona Lisa to the right. […]

Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s

%d bloggers like this: