More selected projects

Projection mapping on Olga kit

140 secs generative art piece projection mapped on 3D triangular structures.​

produced by: Sarah Song


Our group ended up with having an asymmetrical structure with Olga kit. There are 14 equilateral triangular surfaces in total for us to project on.

I created a 20 scenes animation, which lasts for 140 seconds for projection mapped on 3D triangular structures. I hope the various changing scenes can hold the viewer's attention.

Concept and background research

When it comes to visual, I realize that I usually have a preference for grayscale images and circular shapes. This time I chose to stick to black and white style but try not to use ellipse/circle in my work.

Inspired by one of Saskia's Geometric Animations and a projection mapping project by Tekyes, I decided to use 2D primitives as my sources and try to play around with lines, squares and color blocks within the geometric shape. It is interesting to see what possibilities and visuals I can bring at last by using ofxPiMapper and a scene changer.


This generated art piece is written in OpenFrameworks with addons: ofxGui, ofxJSON, ofxPiMapper and ofxXmlSettings.

Here are my 4 basic FBO Sources of 2D primitives and techniques include:

  • Moving line:  if-statements
  • Three triangles: random grayscale color change, use ofGetElapsedTimeMillis(), ofGetFrameNum() and modulo to count time
  • Grid of squares: for loop, if-statements, noise, custom class, random grayscale color change, ofGetElapsedTimeMillis() as a timer
  • Rotating squares: translation, rotation, scaling, custom class, gradient color change, for loop

There's one thing I found when doing texture mapping, that is the infinite possibilities I can get by customizing the vertexes. It allows me to warp the original images and to generate many cool results. Finally, I have got 20 scenes in my whole piece, and I'm pretty sure there are enough changes and compositions for the viewers.

Future development

Since Olga can be assembled in multiple configurations, there are lots of structures we can have for projection mapping. Maybe it would be a nice try to map on some symmetrical surfaces.

We have got obvious pixelated images projected on the Olga thing in the pop-up exhibition due to some unknown problems with our projector, which is quite distracting. It is therefore very important to be well-prepared and to have adequate spare time to deal with unforeseeable problems.

Self evaluation

I learned a lot and become more familiar with C++ language through this first term final project, This is my first projection mapping project and we chose a challenging object to project on. We did spend a lot of time trying to map more accurately, it is hard but I’m glad we made it work at last, and I quite enjoy the process of working together. Although we made our animation separately, it was kind of amazing when they combined together, and I was inspired a lot by the works done by other group members. I think the animation would be more eye-catching if I could make much more stronger visual effects like some distorted illusion of space or more complicated patterns with my code.


"MixMapMusik- Mapping Serail 01" by Tekyes

Saskia's generative pieces: Geometric Animations / 170514