More selected projects



An eye becomes unstable.

produced by: Claire Kwong




The pupil becomes a mandala. The iris becomes an amorphous blob. The eye spins and multiplies. One eye is normal, three eyes are unnatural, many eyes creates paranoia. I hoped to evoke the feeling of the body destabilizing, fracturing, perhaps going mad.





I chose to work with a complex, polyhedral shape to challenge myself and exploit the projection mapping medium. I wanted to project organic shapes to contrast with the angular geometry of the structure. I often use video of bodies in my work, in particular this gif of a blinking eye. An eye is universally recognizable. When I distort and glitch it, the effect is unnatural and visceral.

I gravitate towards working with video because I like the organic shapes and movement it can have, as opposed to the generative animation we’ve been making with openFrameworks. But as the assignment was to create a generative piece, I decided to take the video of the blinking eye, and abstract it into shapes. I was inspired by the flat illustration style of artists like Alex Katz.





The shape is composed of 22 equilateral triangles. They join together to create 5-, 6-, and 7-pointed polygons. Our group originally made the shape out of an Olga kit, but ultimately recreated it with card paper.

I began by breaking up the eye into shapes I could generate with openFrameworks. For the sclera, I traced over the source video with bezier curves and imported it as an image. The iris and pupil start out as circles, but become dynamic shapes adapted from the assignments for mandala and noisy sun, respectively. I created the blinking eyelid with a rectangle that grows and shrinks.

Initially, I place each iris in the center of a polygon, where all vertices meet. To help projection map this, I wrote a function shape() which draws the outline of a pentagon or heptagon on the eye, so I could map the resulting triangles directly onto the shapes in ofxPiMapper. At first, the mandala animation has 5 points, and maps directly onto the underlying geometry.

I created 3 frame buffer objects (FBOs) for each eye. These are all instances of EyeSource, but pass in their own color, and also have different generated random numbers that control animation timing. I wanted each eye to move slightly differently.




Self evaluation

I’m happy with how the project turned out aesthetically. I’m also proud of how I structured the code into multiple FBO classes. There was one bug I couldn’t figure out, where sometimes during the second or third scene, the animation gets a dark translucent overlay (the color of the iris) on top of the eye but under the eyelid. I suspect it has to do with the multiple FBOs.

For the shape itself, I’d make it out of something more rigid than the paper we used, but still light enough to hang. This could be thicker paper or plastic, like the Olga kit. If I had complete control over the shape, and wasn’t sharing it with a team, I’d develop it in tandem with the code. I could fit it more precisely to my animation.




Future development

I’m interested in continuing to projection map. I kept the shape so I can use it in the future. I'd like to use video with ofxPiMapper. I also think the shape is complex enough to create interesting effects on its own, so I could simply project video from any program (like MaxMSP) onto it.





Alex Katz,

Olga kit,

Mandala shapes, in Workshops in Creative Coding 1, Week 4,

Noisy sun, in Workshops in Creative Coding 1, Week 5,