home about making of videos faq contact
The opening title sequence makes heavy use of LegoBoard. LegoBoard uses a library of thousands of photos of 1x1 Lego tiles on a black background and assembles them into a photomontage to make a single picture of a black background with lots of 1x1 tiles on it.

At first we used a program called ttfbanner (makes ascii art words using ttf font files) to turn a Matrix-style font into ascii that could be used by awk to create a tgl script to generate the falling letters.
As you can see from the thumbnail here, the letters turned out to be way too chunky, so each character line in the falling rain opening became a single 1x1 tile.

If we'd kept it like this, we would have to have worked with an animation frame that is essentially only 9x4 in resolution. The animation would just look like random movement.
A C++ program called falling was created to generate the falling rain characters and output them to a set of frames that LegoBoard could use to create an image sequence. Falling uses a mini "kernel" to give animation time to the falling rain character "processes".
The code was ripped from a screen saver Trevor wrote years ago called blinken, which was meant to look like the pretty blinking lights (Das Blinken Lichten) on an old mainframe computer.

Each of the lights is turned on or off by a virtual "process". Can you see what each process is doing in the core? Have a look for a binary counter, they are pretty easy to spot.

Click on the thumbnail to download the blinken screen saver.
The creation of the processes, how long the strand is and so on is mostly random. Each trail also left a trailing invisible character so that the letters for Trinty Help could be overlayed.

An awk script was written to slot in the Trinity Help characters and flash them and pop them out. This process is mostly hand-written and controlled. The output from this step was also a file that LegoBoard could understand.

Another awk script was used to merge the falling rain characters and the Trinity Help characters into a single file. That file was rendered with LegoBoard to produce a bitmap image sequence.

Another awk script was written to generate a tgl script that did the slow zoom in on the letters for each frame. This script was borrowed from other scenes in our movie that have camera matching motion and zooming in them.