The Pace, Phase 1

Project Description
The Pace is an interactive poetry and video installation. Most digital poetry exists only on the computer, bound by the screen and limited by the input available via mouse and keyboard. This results in a body at rest; the movements of the user are minimal as they bend and flex arm and fingers. However, this is a piece that resists rest, exploiting the everyday motion of walking (pacing) to release the energy created by intense thought-processes and emotional preoccupation. The Pace moves toward a more haptic poetry, one in which the full body of the user must be engaged in order to move forward the video and text, expressing the thought/emotion process. Perception of meaning will rely not only on the flicker of the eye, but also the stimulation of muscle and nerve throughout the body.

The Pace is a room-sized installation, made of a floor and four walls. The walls become the screen, receiving projections of video and text, while the floor is the keyboard; I am still working within the limits of a traditional computer set-up, but pushing those boundaries into somewhat unfamiliar forms. The floor will be constructed from pieces of aluminum vertically separated by thin strips of padding and each piece is wired to act as a specific letter on the keyboard. When the user takes a step, the padding is depressed so that the top piece of metal touches the bottom, the circuit is completed, and the message of which key has been pressed is sent to the computer via USB. A program and interface built using Macromedia Flash receives the key-press input and outputs video and/or text and/or sound, displayed on the wall or played via speakers.

Prototype Construction
To get an idea of how the installation would be built, I constructed a prototype (8"x11") made from small pieces of aluminum flashing, posterboard, and (of course) electrical tape, and attached it to a piece of pressboard for ease of transportation. At this scale, people would "walk" across the floor with fingers and I chose posterboard as the separating layer because it was thick enough to keep the aluminum panels apart, but thin enough to not require much pressure to press the panels together.

Keyboard Hack
To assemble these panels into an interface that a computer would recognize, I did a simple USB keyboard hack. First, I took apart the keyboard, extracting the circuit board. Looking at the board, I identified the contacts. There are two sets of contacts on a keyboard, one set of 8 and another set of 18. Letters and symbols are sent to the computer based on the activation of one contact from each set; each letter is made up of two contacts. I tested the contacts to see which combinations would produce usable symbols.

After identifying the useful contacts, I soldered short wires to them. I inserted these wires into protyping boards, one board for each set of contacts:

Later, I streamlined this setup using only one breadboard, then wired the panel into it as well. For instance, to create the letter "a," the top aluminum piece was plugged into the same row as contact set 1, contact 3 while the bottom piece was plugged into the same row as contact set 2, contact 1.

(p.s. I learned how to do the keyboard hack in a workshop, but here's an okay description I found on the web: Keyboard Hack Tutorial)

Flash Interface
For the display, I'm using Flash to read the keystrokes (activated panels) and display video and text based on key/panel was pressed. One wall contains a video matrix, another one displays an arrangement of text. The first step here was to find and compress 12 video files, as well as write 12 lines of text. After importing the video into Flash, I placed each one into a movieclip symbol. The first frame of each symbol was blank and had a stop action on it, so that when I put them in place on the stage, the stage would be black until a keypress occurred. Here is the actionScript that read the keypresses:

//---------------------------------------------------------

keylistener = new Object();
keylistener.onKeyDown = function() {
if (Key.getAscii() == 97) movie1.gotoAndPlay(2)
if (Key.getAscii() == 102) movie2.gotoAndPlay(2)
if (Key.getAscii() == 108) movie3.gotoAndPlay(2)
if (Key.getAscii() == 99) movie4.gotoAndPlay(2)
if (Key.getAscii() == 115) movie5.gotoAndPlay(2)
if (Key.getAscii() == 106) movie6.gotoAndPlay(2)
if (Key.getAscii() == 122) movie7.gotoAndPlay(2)
if (Key.getAscii() == 118) movie8.gotoAndPlay(2)
if (Key.getAscii() == 100) movie9.gotoAndPlay(2)
if (Key.getAscii() == 107) movie10.gotoAndPlay(2)
if (Key.getAscii() == 120) movie11.gotoAndPlay(2)
if (Key.getAscii() == 109) movie12.gotoAndPlay(2)
};
Key.addListener(keylistener);

//---------------------------------------------------------

key.getAscii() reads the ASCII code being sent via USB.
movieX.gotoAndPlay(2) calls the instance of the movieclip symbol on the stageand sends it to frame 2, where it begins to play the video. after the last frame in the movieclip is reached, it loops back to frame 1, which is blank and has the stop action attached.

For the text display, I created duplicated the video movieclips and replaced the videos with lines of text. On a new scene, I arranged the text movieclips so that nothing would overlap if all panels had been activated at the same time. I used the same code as above to call the instances and send them to the second frame.

These Flash movies can be seen and tested on my website (flash player 7 or better required):
Video Test
Text Test