home about making of videos faq contact
LegoBoard is a program that Trevor wrote that can produce a realistic grid of black Lego studs with any number of 1x1 Lego tiles on it. This was used to produce the intro and credit sequence animations, rather than doing them all by hand.

Trevor writes:

First the source images were photographed. The basic idea was to photograph each colour of each 1x1 Lego tile in every position on a big black Lego grid. The grid was 64x36 and there were 6 colours to photograph, so that makes 64x36x6 = 13,824 individual photographs! As you could imagine, this required some clever shortcuts.

This number could be reduced by taking pictures of more than one 1x1 tile at once. To accurately capture the shadows of the blocks on the background, the closest the blocks could be photographed together was every other stud on the background. This means that you could photograph a maximum 576 blocks at once on the background. In practice, I didn't have enough Lego blocks to make the entire black background or fill it with the same colour 1x1 tiles.
I made a small black rectangle that I called a shuttle. The shuttle was filled with 1x1 blocks on every other stud and moved to each location on the background to be photographed in turn until a picture could be built up of the frame from merging all the individual pictures.

Here you can see a shuttle in place for photographing. The ground plate has lots of stand-offs on it to make handling a lot easier, and a stable mount that would ensure the shuttle was level.
Click here to see a 440k GIF animation of the shuttle in motion.

Note that the picture here is upside down, since it was easier to mount the camera that way.
Then all the 1x1 tiles on the shuttle were moved one stud to the right and the shuttle and photographing process was repeated. Then they were shuffled down one and then left one, each time going through the shuttle and photographing cycle. These 4 images were called a rotation. Then all the colours I had were cycled around, and the entire tedious process was repeated. This added up to 226 photographs.

If you don't already have yourself a Lego tool like the one I'm using here, get on the net and order one. Invaluable for prising blocks apart.
Next an awk script was written to generate a tgl script to merge each set of 9 shuttle images into a single complete picture for each cycle and rotation, including one for the background.

At this stage the image has also been rotated the right way up.

Click here for a 550k GIF animation of the 24 images.

Click here for an 84K close up GIF animation of a 4 image rotation.
To do any sort of digital manipulation of the coloured tile source images it was necessary to have the exact coordinates of each 1x1 tile. Due to the slight barrel distortion of the camera you can't simply calculate the location as if it was a perfectly uniform grid. So I put a small yellow dot in the center of each background stud and had tgl output the exact coordinates to a text file.
An awk script was written using the coordinates text file to generate a tgl script that would gather blocks of the same colour from the source photographs and place them on one of 4 rotation images. This gave 4 rotation images for each of the 6 colours. Adding this to the black background image gave the 25 source images that were the basis for the LegoBoard program.

Click here for a 74K close up GIF animation of a 4 image rotation.
The LegoBoard program takes input from a text file like this one that generated the image here and builds up an internal representation of the LegoBoard grid with the blocks on it. This structure is then rendered by loading up the appropriate colour and rotation source image and copying the corresponding 1x1 tile photograph to the output image for each 1x1 tile used in the input structure.

The text in this example was generated by ttfbanner.
That was LegoBoard version 0.1, and it was used extensively for the making of the opening title sequence for our movie.

Over the course of the year, LegoBoard was extended to take input from pictures. LegoBoard images could also be generated via programs directly using the tgl or windows api to "draw" text and shapes on the LegoBoard and this is how the closing credits for the movie were done.

The accuracy of the output was also improved by making a more accurate map of where each 1x1 tile was located. Some crazy maths were also built into the tgl api to allow the blocks to be rendered in any colour, but it doesn't look as good as the original colours.

LegoBoard'd Lego Trinity Help
So, just for amusement purposes only, here is the 2D Lego Mosaic LegoBoarded version of the Lego version of the bullet time scene from the Matrix.