Posts Tagged ‘art’

Techy Art: Algorithmic Imagery

I’m working on an interesting project– I’m writing programs that convert text to images based on the key strokes. It’s turning up some unusual results! My plan is to create a program that turns 140 characters into an image, so that people can tweet art! Ultimately, I would like to be able to upload a text file and have it turned into a png file, or even better, upload a png file and turn it into text! It’s not really an encryption scheme, since it can be easily deciphered, but I think it might be interesting digital artwork. For instance, Mike and I could upload the source code from our websites and create images from them– unique embodiments of our technical work!


I recently read an article on steganography- the art and science of hiding messages inside of images, and it got me to thinking: “what if the message wasn’t hidden in the image,but instead the message defined the image?” Now I’m not the artistic type- the kind of art I am interested in is methodical (read… paint by numbers). But I am a computer scientist, and I know that a color as understood by the computer is a 4 byte unsigned integer that defines an ARGB value (Alpha, Red, Green, Blue), where each byte represents the quantity of each part. I also know that a character like the lower letter case a, is defined by one byte when encoded in UTF-8, which represents a number between 32 and 126. Therefore, 4 characters, like the word duck can actually be translated into a unique ARGB value (or for opaque colors, three characters like the word ben can be translated into an RGB value).

Thus began my experiment. I wanted to see what a translation from text characters to colored pixels would produce, and if potentially there would be meaning in art created algorithmically. The quote above is from an email I sent to Jaci describing on what I was working on. The quote has one unique feature- it is 675 characters long. If you divide 675 by 3 (the number of characters you need to get an RGB value), you get 225 – which is 15 squared. This is perfect for an image of 150 x 150 pixels, where each RGB value makes up a 10 x 10 pixel square (or 100 pixels). Here was my first result:

Photext- First Attempt

First Attempt

So when you take the above quote and translate the byte sequence into RGB values, you get this colored, kind of grey, very dark image. The reason for this is because the characters American keyboards use (and we regularly type) range from between 32-126, while colors are defined with values between 0 and 255, where 0 is black, and 255 is white. When you put an RGB value together, the amount of each value determines the color, so (255,0, 0) is red. (0, 0, 0) is black (no color), and (255, 255, 255) is white (all colors). If the values are even, say (64,64,64) you get grey, darker grey is numbers closer to 0 and lighter grey is numbers closer to 255. So because the alphabet we normally use is so close together, and very low numbers- you get a grey, dark image. Especially since the most common character we use is the non-breaking space: ” ” which is 32.

To fix this, I shifted the values for the characters by distributing them evenly across the range 0-255 (for the nerds out there, I used the formula: Math.ceil((charCode – 32) / 94 ) * 255)). This had the effect of spreading the values of characters farther apart, and making them less grey, it also lightens the image, because the top values are closer to white again instead of black, and I got this:

Photext - Shift

Shifting the colors to a full range

Much, much better! And actually, an interesting result because all the colors are there- reds, greens, blues, yellows- that is what I was hoping for! I was afraid that a direct byte by byte translation would produce uninteresting results (monocolor, shades of the same color, etc.). There were still a lot of greys and whites, and I thought this could be the fault of the most common character, the non breaking space, which my shift gave a value of 0. So I made the non breaking space 255 (all white). This was a failure, because it lightened the image up too much:

Photext- White Shift

Making space, " ", white

I had been hoping that maximizing a color value might make the color more vibrant. But as it turns out, spaces are only one of two other values, that probably are also high. so, instead a 0 value actually makes the other two colors more vibrant, while the the 255 value, just makes things whiter. Blocks might not be the most interesting result, so I tried random scatter of the 1o0 pixels:

Photext - Scatter

Scattering the pixels randomly

But this has a problem, when you inject randomness into the formula, you can’t translate the image back to text. So my original idea of an algorithmically generated piece of art, whose meaning could be read in plain English, would be lost. This image could be translated into any text, not just the paragraph that you read in the beginning. Blocks are boring, so next I tried 100px lines, I hoped that this would give me the fluidity I was looking for:

Photext- Lines

Lines instead of blocks

Alas, it did not, it gave me three columns because 100 is 2/3 of 150, so the images was broken into thirds. I am now currently experimenting with some other manipulations including spirals, alpha gradient overlays, gradients, frequency histograms, etc. If you have any ideas, please comment them, so I can try them out!

So what is the end result? As you read from my paragraph, I’m thinking about making this mainstream by creating a web application for tweets. Of course, now that I’m posting this as a blog, anyone can steal that idea and run with it. Maybe I should grab the domain tweettoart.com! But I’m thinking this could have bigger implications. I also mentioned that I could uniquely turn my web pages into graphics, or even bigger- I could take the entire New York Times website on a particular day and turn it into some sort of graphic! If you have ideas for applications of this, please comment below and let me know!

Also, I’m hoping that using these methods, we could find interesting images, where text can be written specifically to produce an image. Then both the image and the text would have meaning! Imagine creating poetry that designed an image (hint, hint, Devi and Bethany!) That would be really cool.

If you want a copy of the program in its current format to install on your computer (It’s Adobe AIR), so that you can play around… email me or comment below. I’d be happy to share, just keep in mind that it is experimental, so you might be able to break it.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to StumbleUpon

31

03 2010

Hi, I’m Tour Guide Devi!

For the past two days I have been a Beijing shopping/tour guide for two elderly American ladies that are here in China on a tour. They arrived several days before their tour started, and wanted to take the time to do some serious luxury shopping. These ladies were actually friends of my friend’s mom, which is how we got in touch. This was their first time in China, they spoke no Chinese, and as they were a little more on the elderly side (they are both grandmothers, but still look great if they should by chance read this blog), I think comfort, convenience and air conditioning were their most pressing concerns when it came to going around Beijing. Thus they hired me to make sure they ended up at the right places, got good prices, and got around comfortably without having to worry about language differences, ordering food, or getting lost.

These ladies were incredibly sweet, but from first glance at their Hermes belts, Burberry bags, expensive watches (the brand I forget, but the Chinese bellhop at the hotel identified every single name brand they were wearing, which was fascinating but creepy at the same time), I was a little worried that they would not be able to hold up to the hustle, heat, bustle and bang of Beijing, especially since they were clearly accustomed to absolute comfort and ease.

The first day they wanted to do nothing but shop. So I took them to the pearl market, where we spent four hours looking at pearls, trying on pendants, and experiencing excellent service from “Tom” who had perfect English when it came to talking about pearls, their quality, shape, luster. The pearl shop we went to had been recommended by the hotel, and prices of course were through the roof, but I found out it was nothing compared to pearls in the States, where a quality string of pearls can be in the 10,000s. The walls of the shop were covered in framed photographs of female presidents and first ladies who had bought pearls at their shop, including Barbara Bush and several of the Finnish Madame President who is an annual returning customer.

Both of them bought a couple of items, and in terms of the amount saved from the original price to the haggled price, I think it was one of my most successful bargaining experiences. Because they bought three strings of pearls, we negotiated to knock off about 700 USD total. Tom of course told me not to tell others what we got the price down to, but then he also asked me to bring others to his store if I got any more tour guide gigs. Maybe I should be taking a cut.

The next day they wanted to tour some art galleries, so I took them to 798, a widely acclaimed modern art district. The previous day, they had almost died in the taxi because air circulation was bad, and since they were staying at a relatively new hotel, few taxi drivers new where it was. One of the ladies wanted to go home earlier since she was running out of steam, but I had so much trouble finding a taxi driver who knew the place, and she wasn’t comfortable going by herself with a driver who didn’t know exactly where he was going. This time, we found a “taxi” who ran business out of a black Lexus. There was no plastic gate around the driver and the air circulations was better, so the ladies asked me to ask the driver if he was willing to be our personal driver for the day. For five hundred kuai, he was at a our beck and call for the whole day, which was nice. With a driver willing to go anywhere, I had him detour so that they could see the new Bird’s Nest stadium and Aquatics Center which are being built for the Olympics. The driver not only drove by, but stopped the car up close so we could get pictures, which was a treat for me since I have only seen the structures passing by on the highway.

All in all it was successful and fun. Being paid to go shopping and sightseeing was really nice. Plus as I am a planning guru and people-person who loves to talk about China, it was especially rewarding and applicable work. Plus, I am “cute.” Whatever that exactly means, it works in my favor, especially when it comes to charming old ladies.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to StumbleUpon

11

09 2007