More selected projects

The Matrix

produced by: Andi Wang


This is a projection mapping project mapped on the three layers of pyramid cubes. It presents the different form of randomly generated numbers through a stereo and three dimensional view.

Concept and background research

The initial inspiration is from the number characters, and also the movie The Matrix. In modern society, our life is surrounded by the numbers everyday. There are only ten of them, but they can form from the biggest to the smallest numbers which delivered significant information and data. Since our society moved into digital society,  the numbers are endowed with more meanings. Instead of simple letters, it becomes a symbol, an important carrier of various information, and also a universal language of the world.

I think projection mapping is an appropriate approach to present the animated numbers, especially when the mapped object is in three-dimensional. Therefore I tried to code the animation of the melting, falling and waving numbers, while each number is changing randomly every millisecond. Besides, it didn’t take long to decide the color because green is the typical color to present numbers and data on old-fashioned computer.


The image is the screenshot of my original code.


The project is coded on openframework by using ofxpimapper addon, the transfer of the scene is created by the scene manager. The coding part has taken the usage of for loop, ofNoise,  if-statements, sin, function, and vectors. The biggest challenge of this project is to change the number characters randomly when it is falling and waving. At first, I can only type certain numbers in the scene by using ofDrawString, after I have done the research, I found an example of print the frame rate, I modified the example from “frame rate: %f, ofGetFrameRate()” to  “ %.0f",ofRandom(10)” which can print integers between 0 to 10.

In the scene with the big number “1” to “3” characters, I borrowed part of the code from the lab assignment, the organic typography. Logically, I draw a line between two circles and rotate it through the Y-axis with sin to control the rotating speed and direction.

I also set the background auto false and draw another translucent rectangle on top to create the tail of the moving characters. The last few seconds of the videos present a clear view of the tail and the updated numbers. This scene is using the same code with the waving scene (1min of the video) but the presence of the part is different. The scene starts at the 35 seconds of the video is using the waving scene as well with another black rectangle drawing above it. This little trick helps with present a more different view and effect to attract visitors attention.

Future development & Self-evaluation

This project has met my initial expectations. However, if I have enough time, I wish I could have count the timing more accurately. Some transfer of the scenes is not smooth and natural enough and the waving scene may last too long. The resolution of the projector is lower than I expected so it is difficult to see the detail, next time I will consider that in my design of the scenes.