Text Rain

Project Type: Software
Role: Project designer, Software Engineer.

Test rain is an interactive installation in which participants lift and play with falling letters on the screen. In this installation participants stand and move in front of a large projection screen on which they see a mirrored video projection of themselves in black and white, combined with a color animation of falling letters. This was first created by Romy Achituv and Camille Utterback in 1999. In 2019, with the support from Professor Daniel Keefe who delivered me Graphics class, I reproduce this interesting installation by utilizing Processing, a flexible software sketchbook. The project contains two modes, an offline mode that interacts with an embedded black and white movie file and a mode that interacts with participants in front of the camera in real-time.

My Work

Firstly, I drew the video frames to the screen and loaded a font into Processing application. Then, I used the font to bring the characters on the screen and then the characters will show up on the top of the video. Next, I animated all the characters so that they can fall down the screen. During the process, I designed a pseudo-random algorithm to imitate the randomness of the fall of text rain but there was a reasonable likelihood of catching a set of raindrops that spell out a whole word. The falling text would ‘land’ on anything darker than a certain threshold. However, rain will not just come to a rest when it lands on a dark object like in the palm of a viewer’s outstretched hand but will also rise with the hand if the viewer raises his/her hand. To make my program robust enough under different lighting conditions, I supported my program with interactive threshold adjustment by using the UP and DOWN arrow keys.

To implement the real-time interactive mode of the installation, I flipped the video image displayed on the screen so when viewers look at the display it looks like they are looking in a mirror at themselves. I also enhance my program with a “debugging view” for the ease of debugging and setting a good threshold by displaying the results of the threshold computation – when SPACEBAR is pressed, toggle between displaying the final user view and a “debugging” view that shows a binary image for the foreground/background classification: all pixels classified as foreground should be pure black, all pixels classified as background should be pure white.


Meaning to Me

I chose this one as one of my sample works based on the following reasons. From doing this project, I learned how to use the processing environment for some serious programming projects, and how to work with 2D graphics coordinate systems and primitives. I also have a deeper understanding of interactive art installation and animating computer graphics. More importantly, it inspired me to think deeply into the interactive aspect of applications which usually make them more appealing to users and evoked my interest on applying the concept of interaction to other applications, like human-robot interaction. Moreover, this project allowed me to show my own creativity on algorithms and design patterns when re-implementing the Text Rain installation. (See more on my design decisions on Github) Therefore, I valued this experience as my precious inspiration and fulfillment.


Resources

Github: Click here to view