Monthly Archive for August, 2008



So we’ve gone back and forth with various modifications on the rig.  We added some boogie wheels and then realized that dynamic distribution of weight actually adds another factor of unpredictability to the motion.  The new rig is, however, more stable than the previous couple, and we’ve also attached a small Manfrotto head mount to the bottom of the lift.  Now the camera is much easier to mount.  The first movie below is the actual test, while the second is a stabilized version, taken through Shake.  The movie above is roughly color corrected, stabilized, and the background replaced.  The reflections in the mirror are Benny and I moving around as the move is running.



Proto4 test shoot2


This a clip from a rough shoot of one of our buildings.  In total we’ll have about 9 buildings, many of which we’ll be interchanging parts in order to add variation.

Our lift stopped working in the middle of the shot – a gear driving another gear on one of the four track gears slipped out of place, but because of the differential (which aligns the four rack gears), I didn’t notice the problem until too far in.  Our next version should deal with some of the workflow complications we noticed through this shoot.

I’ve added some different coloring to one of the front walls in this shot – just to see how that might look.  In order to do that, I first applied a lens undistort (you can see the distortion at the edges of the frame), then color-corrected the plate, with a traveling matte that followed the camera move, and then redistorted the plate.  This way, I can create a matte for the wall that has straight lines, and then, when I redistort, get the lens barrelling back into the image.

Below are some shots of the buildings and the shoot in progress.

Proto4 test shoot

So we shot some footage on our miniature set which is being built about 400 km away.  Over the next few days, I’ll be adding some more shots.  Above is one of the clips (the flicker is from the large sunlight in the workspace – we’ll be shooting in an closed off studio for the actual film shoot), with some work done in Shake to average the bluescreen, replace the background, and add the foreground flicker to the background (with a multiplier).

This is shot on our new set of rails (which are 2 meters long).  The rig will need some modification, since the rails are a bit tighter.  The lift is also a bit unstable (still), but we think we’re on the right track – using 3 differentials driving 4 24-tooth gears along 4 rack gears.  We should, hopefully be able to stabilize the motion completely.

Below are some of the photos of the shoot.

Miniature molds

These are some pictures of the molds we use for the miniatures.  Notice the use of LEGOs to frame the 2 component plastic we cast in.  The LEGOs are easy to pull off and reconstruct, rather than having to build a new frame for each cast.

Proto4, PID, worm gears

So we’ve redesigned the lift mechanism a couple of times.  The lift you see here has about six worm gears (inside of a gear housing) that drive four gears around four rack gears.  This corresponds to one gear on each corner of the lift rod.  There are differentials between each set of gears and the central driving gear (three differential gears).  This is an improvement over some of our last models, which had dozens of gears – our theory is that at this small scale, the more plastic LEGO gears you introduce, the more possibility of error.  So less is more.

We’ve also been visually logging our degree variance in the Processing sketch I’m writing.  It’s pretty primitive, but gives you a good idea of how close we are to a target rotation count.  At the moment, using a pseudo PID (with multiple levels of bi-directional adjustment once the degree count is within certain thresholds, as well as fail-safe conditions, in case of run away motors), we get an average of about 5 degrees of variance.   That’s not bad when we’ve got gear factors of 1,728 and 576 (track & lift).  To the left you can see the screen grab of what that visual graph looks like.



Proto2 testing

Here’s a first test from the Proto2 rig.  As you can see, there’s a fair bit of work here isolating the shake.  The actual gear motion is relatively accurate, but the lift on the rig introduces some instabilities.  We’ll take a look at these in the next couple of days.

The second test is an overlay of the camera move we set in 3D (with a stand-in object) and the actual footage.  The general motion is fine, but it’s easy to see the stability problems.  Because we’ll be shooting closeup on the miniatures, I expect to have a lot of parallax in the shots – what that means is that fixing stability in post (eg. re-projecting the plates on 3D objects and creating baked texture maps, and semi-stabilized plates) is a complex problem.  So we’ll need to solve the stability issues at the rig level.

Prototype 2

So this is our second prototype rig.  That’s Benny Bondesgaard in the picture, who’s doing most of the building.  We’re shooting tests this weekend in preparation for doing a test shoot with the miniatures next week.  Our process goes a bit like this:

  1. Set a move in Autodesk Maya using a 3D version of the LEGO rig – built to scale, and with moving parts.
  2. Export the move in .move format (ascii format, where each axis is a column, and frames are line separated)
  3. Set the rig to a default position (we’re working on a gear release, so that we can manually move the lift/rotation).
  4. Start Processing and EOS Utility (we’re using a Canon EOS 40D).
  5. Run our sketch.

I found a way to trigger the remote shoot on the EOS Utility using a simple Applescript which sorts through UI elements and finds the right button.  Not even close to a good long term solution, but one that works fine for the moment.  I spent some time mucking around with gphoto and a few other utilities (as well as trying to wrap my head around the Canon ED-SDK), and this is definitely the easiest to implement.  This way, we can create a minimal UI for the actual Processing application and be able to use all of the functions Canon has built into the EOS Utility.

In the Processing sketch, we set each incremental move by setting a motorForwardLimit (which is based on the rotation of the servo).  Often enough, the motor overshoots the limit, so I set an adjustment move based on a threshold of error.  This gets us closer – still not quite exact, but we’re working on it.  I may end up going back to just turning on the motor, and gradually lowering the speed as I approach the right rotation count.  Or perhaps setting a limit for the first step, and then gradually working with the speed for the adjustment step.

After the camera trigger clicks, I also run a loop that goes for five seconds (it tests against the millis() function in Processing, which is a millisecond count from when the sketch was initialized).  This is so that the Applescript has enough time to open and click on the release button in the EOS Utility.


This is the start of one of our windows frames (for the 1:24 scale set).  We’ll be refining this and then using it as a master for hopefully a couple of the buildings.

Warning: require_once(/home/sunit_parekh/ failed to open stream: Permission denied in /home/sunit_parekh/ on line 572

Fatal error: require_once(): Failed opening required '/home/sunit_parekh/' (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear') in /home/sunit_parekh/ on line 572