High Performance Narrative

"Perhaps the immobility of the things that surround us is forced upon them by our conviction that they are themselves, and not anything else, and by the immobility of our conceptions of them." Proust, Swann's Way

"There are days when everything I see seems to me charged with meaning: messages it would be difficult for me to communicate to others, define, translate into words, but which for this very reason appear to me decisive." Calvino, If On a Winters Night a Traveler

Wednesday, April 05, 2006

In Search of Lost Discourse





In this sketch I was concerned with how a small device with limited physical memory could possibly remember something as expansive as Proust's "In Search Of Lost Time". I looked into a number of natural language processing algorithms, all of which depended on huge internal data sets and intense computational power. In my research I came across the ideas of discourse analysis as defined by Michel Foucault and Jürgen Habermas and specifically the idea that phrases of words are in constant competition. I decided that one way to remember Proust would be to remember a meaningful phrase from the book, something that stood out from the rest.

I designed a fitness algorithm that tests a phrase for the average length of words, the longest and shortest word (and the distance between these values and the average), as well as the frequencies of each letter. Each incoming phrases is tested against the currently stored phrase and if it is found to be more fit, it becomes the phrase stored in the device's EEPROM memory. The device will load this phrase from EEPROM when it is turned on, so it can pick up the story where it left off. In this way, the hardware is not only remembring Proust as it reads, but it is remembering the novel as long as it remains functional. As time passes however, the remembered phrases looses some of its luster and decays in fitness, allowing it to be replaced with a newer one.

This sketch was simulated in C++ and tested using the WinAVR compiler to make sure it fit the memory requirements of the Atmega32. After seeing the simulation, I decided that there were huge flaws in sketch and abandoned it. First of all, this was a project that had no need for an audience or any form of human interaction. It was simply an algorithm processing a body a text. This project did, however, became the seed for the text-based sampler. My plan is to allow the user to determine what is memorable within a huge stream of text, and give them the tools to generate a narrative out of these pieces. Allowing human control over the fitness algorithm will completely change the nature of the work, making it something that grows by human and audience participation.

rotoreel memory module





This drawing machine is a sketch that experiments with leaving physical traces. It combines the functions like a clock and a data recorder in order to paint a picture of activity over a duration. There are numerous problems with this piece, but it should be viewed as a quick test of a few technical and aesthetic ideas.

The rotoreel looks at an infrared range finder, filters and processes the data, and actuates a servo-controlled arm based on this distance and its internal clock. A pen mounted to the end of the arm leaves a continuous mark on the disk based on the speed of the turntable platter and the rotation of the arm.

A number of early program loops aimed to duplicate aspects of Duchamp's rotoreliefs. I aimed to translate the distance of the range finder into an offset circle in order to create an illusion of depth based on an actual physical distance. The physical setup of this design has none of the fine control necessary to achieve these lofty goals. In order to do this I would need to eliminate all servo noise and add gearing to allow me to convert the 8 bit servo resolution (over 180 degrees) into a linear translation of the arm over approx 3.5 inches.

The problem with the sktech as it stands is that the information contained on the disks folds over itself at the high rate of 33 and 1/3 rpm. The disk quickly becomes an illegible mess. Again, the lack of fine linear control prevented me from making a graceful spiral that could be read as a single line with noise.

As it stands, the project did achieve some of my technical goals. I am using ISP programming of a AVR Atmega8 microcontroller, and have interfaced it to a Sharp range finder and a Hi-Tec servo. Internally, the program makes use of a number of the LibC libraries. I also tested EEPROM storage of data so that aspects of the hardware could adapt over time.