A zoetrope is a wheel containing photos (2D) or sculptures (3D) that when spun at an appropriate frame rate, creates the illusion of motion. Back in the day, artists would use a small slit or window to peek through as a sort of shutter. This can still be done, but using synced strobe lights is another way to induce an animation. Read with caution: this page contains strobing videos.
What if we could create and watch truly 3D cinema?
Zoetropes as they are now suffer from a few problems. Because the frames are spread around a cylinder, the animations conveyed are short and periodic by nature. One way to circumvent this limitation is a spiral zoetrope. Depending on the radius and length of the cylinder and the size of each frame, you could tell a much longer, full story. My goal is to gradually expand the space of possible stories that can be told in a zoetrope format by 1) building bigger and better zoetropes and 2) taking traditional cinematography techniques and making them viable (look good and physically sound). To do this, I use a variety of machinery: laser cutters, CNC machines, and most often 3D printers.
Initial zoetrope prototype
When deciding what kind of project to work on in my PhD, I needed to make a small proof of concept to see if the idea of making zoetropes worked well enough for me.
The things you need to make a 3D zoetrope are:
a way to spin it
a way to view it
The things I used for my first zoetrope were:
a laser cut plate with wooden spokes coming out
lazy susan rotary ball bearings from the hardware store
a small LED along with a sensor to trigger the light
16 3D printed frames of the animation
I made this 2 second animation in Maya with a reference video of me doing a backflip. Then I split the animation regularly into 16 frames and printed them.
I laser cut a design I made in Illustrator of a wooden plate with 16 spokes around a circle. The idea was to mechanically trigger the strobe light with the spokes, illuminating the zoetrope at every frame to make it animate. I placed the wooden plate on a rotary bearing and secured it with a bolt.
I used a photointerrupter IR sensor to detect when each frame is passing the viewer. The sensor has 2 sides, shooting an IR beam between them. When the beam is broken (in this case by the wooden spokes), I used an Arduino to read that pin and flash an LED.
Record player zoetrope
Since a hand-spun zoetrope only spins at the "correct" rate for a very short period of time, it made sense to move toward a prototype that made the wheel spin at a constant speed. Because I wasn't very familiar with electronics at the time, and getting a single arduino program to control both the lights and a motor to spin the zoetrope, instead I used a record player to take care of the spinning. Because of the way the record player was made, the mechanical spokes would no longer be plausible, so I wrote code that timed the strobing to the speed of the record player's fastest setting. Not perfect, but a good next step. At this time, I also made a simple bouncing ball animation featuring the animation principle, squash and stretch.
Bigger cardboard zoetrope
The original backflip zoetrope had a specific problem: in the frame(s) where the character is completely in the air, the support rod holding them up is visible. My project at this time involved generating invisible support structures for suspended objects. With only a week to prepare all fabricated results for my Eurographics paper, I did not have a way to elegantly spin the zoetrope, so I had to do it the stop motion cheating way: moving the wheel 1/16 of a rotation manually and taking a picture. Like I said, I didn't have a lot of time or resources
Bike wheel zoetrope
Ok are you tired of the backflip animation yet? I am. And I want it bigger!! This time I wanted to make a full demo of an even bigger zoetrope. To inch closer to my dream of making such a big spiral zoetrope, I decided to make one the size of a bike wheel.
Modularity and Aluminum Extrusion
Around the bike wheel, there are 16 slots called scene holders. The scenes can be switched in and out by clipping them to extra strength magnets. This is important because it is faster and easier to make new animations instead of making an entirely new zoetrope. I can even do perceptual tests for my projects by switching a single frame in and out. The wheel sits inside an aluminum extrusion cage so it can freely spin. It's also strong, so that even if the wheel + scenes is heavy it can still run.
The first animation I made used 3D printed boxes. Each box took about 9 hours to print... so for the next iteration I made more lightweight modular laser cut boxes. They are faster to make so I can make new ones if needed, but I also have little slots to pressure fit tabs on objects in the scene to so that I can even re-use the boxes.
I made another animation, this time in Blender using characters and rigs from Adobe Mixamo database.
Again, I split the animation into 16 frames, since ~8fps is needed to make smooth-ish looking motion. I sampled every fourth frame and 3D printed it. The printing process took a very long time, and in hindsight, printing 16 tiny kitchens was probably a waste. In future iterations I am using different material (CNC cut styrofoam) to make all the backgrounds to save time and plastic.
In order to create the motion, the wheel has to spin at a specific rate. Since I have 16 frames and want to show about 8 frames per second, the wheel needs to spin at 0.5Hz. Using a rubber timing belt and a stepper motor mounted on the aluminum structure connected by pulleys, the wheel spins at a constant speed. You might be wondering, "wait, you are using a bike wheel. Why do you use pulleys and a belt instead of a bike chain?" Yes, good question. The bike chain was too loud and the timing belt worked well enough.
The stepper motor is a Nema17 and using microstepping, I was able to send pulses to it from the arduino in order to spin it at the right speed taking into account the gear reduction between the pulleys. The CNC shield on the arduino and motor driver came from a kit to build a CNC machine.
Syncing the light with the spinning was a challenge. I needed the wheel to ramp up to the correct speed from its rest state and make sure the flashlight strobes matched when each frame passes the viewer. Because I had the pulses available to me, I did some computation to flash the light after a certain amount of pulses. The arduino's digital write function was too slow (on the order of microseconds) so I had to use a library to make it faster. In the future I should use a rotary encoder because it's still not perfect.
The entire structure is covered with a dark fabric so that the strobe light can do its job. It also gives the user an individual experience.
Capturing a zoetrope
Zoetropes are an in person experience. Unfortunately, when submitting this demo to conferences, they want proof that it works. It turns out, capturing a zoetrope animation is nontrivial. There are a few ways to go about this. Take an extra high frame rate video of the zoetrope and then extract the frames where the flash is on and the scene is visible. Or, sync the camera's shutter to the light's flash. Using a uEye camera and an 8 pin connector, I added the camera to my arduino setup and triggered it to take an image every time the strobe light was on.
Usually the interaction between users and zoetropes is pretty passive similar to traditional film. However, in my zoetrope, the user can hold the flashlight themselves and peer into the scene. The mechanism that makes a zoetrope work is put in the hands of the user. They can shine the light on different parts of the scene at different revolutions. This also sort of helps with the periodic animation limitation. Now, though the animation may be short and repeated, maybe the animation can be more complex, with many details to be discovered through subsesquent viewings of the same zoetrope. I would like to try this using colored lights as well, to hide parts of the scene from viewers until I want them to see it.