More selected projects

Glowing Caterpillar

produced by: Julia Makivic


“Glowing Caterpillar” is a piece which centers on a bouncing caterpillars that live inside of a triangular shape. At first, the caterpillar is hidden and the viewer only sees various triangles and lines come in and out of the shape. However, after a while, the first caterpillar reveals himself. Then little by little all of the caterpillars reveal themselves.

Concept and Background Research

My group had decided to use the Olga toolkit to create our shape. The Olga toolkit consists of triangles that can be folded together to create a variety of shapes. Therefore, at first I wanted to create something more abstract that played with the geometry of the shape. I wanted to play with patterns that could create the illusion and textures and animate the shapes. However, my background is in narratives and illustration and I found myself wanting to add a more representational, narrative element to the projection. Therefore, I decided to add an animated character who would jump in and out of each triangle space and wink at the audience. By combining the different classes, I created a narrative about a character who at first starts out shy by hiding behind the various shapes and textures but then slowly starts to reveal himself.


In order to create this projection, I used three classes for the triangles, lines and caterpillars.

The class for the triangles draws three triangles and unites one of their points at the center. The central point then moves in a semicircle. The colors change according to a sine-wave. The class takes inputs for the size of the radius for the semicircle in which the central point travels, four colors, one for each triangle and one for the getLerped() function. The lerped color changes according to the sin wave.

The class for the lines draws a series of ofPolyline() objects with points spread along the line evenly. The class consists of a series of switch statements which will determine the shape of the line. Each switch statement manipulates the points on the line differently, however, each statement incorporates a sin function.

The class for the caterpillar incorporated the Fiery Comet example in order to draw the caterpillar’s body and to create the bouncing effect. The caterpillar’s face winks every 60 frames. The cloudy “wreath” around the caterpillar is drawn in a circular pattern around the face. It consists of circles of varying opacities. The circles in each wreath move using the ofRandom() function, creating a cloudy, hazy effect.


Tools from class: Fiery Comet example. This example informed how I animated the caterpillar.


Overall, I am very proud with how this piece turned out. I am glad that I was able to incorporate a narrative aspect to it. Working with ofxPiMapper to map our projections was challenging, but I was to learn about many of the technical details that arise when making a projection-mapped piece.