Background Information


I was originally attracted to raytracing a few years ago when I saw some of the early work done by Paul Gyugyi with his Rayshade models, legolib.ray. I ftp'd Rayshade and compiled it, and fetched the code and examples that went with legolib.ray. Unfortunately, learning Rayshade and Paul's click program all at once was too much, and I gave up when I discovered that I didn't even have the stuff I needed to make Paul's recon ship image. I let Rayshade gather dust for a long time after that.

When summer rolled around, I had more free time to experiment with Rayshade, and I had finally bought a machine I could run UN*X on. I discovered that I liked modelling actual objects, since I could get out a ruler and measure them and end up with a raytracing that looked fairly realistic, but required little artistic talent. I spent a lot of time that summer modelling my computer (hey, it was handy!) and acquired the CSG skills that would later be essential to the LEGO raytracing project.


In September, 1994, my roomate, Jeremiah Johnson, was hit by a car while riding his motorcycle. We were sitting around lamenting the fact that we didn't have enough LEGO when he told me that what he really wanted was a whole crate full of minifigures to pose in a giant crowd scene. I suggested that we could just raytrace the field of minifigs and get the same effect. Since he wasn't attending class, he spent a lot of his free time applying his considerable artistic talent to imagemaps for the shirts and faces for the minifig models, and since I was just barely attending class, I spent a lot of time working on the models for the minifig's body parts.

By the end of October, we had a minifig with all of the essential body parts, in essentially the proper proportions, and began constructing scenes with them. Our first image that was more than just a study of an individual minifig was the Anarchy March, which was completed on October 26, 1994.


I continued to improve the Perl script that takes individual join angles and color information to form an entire minifig model, and I even talked Jer into modelling some of the tools that we wanted to play with. Around this time I converted from Rayshade to POV-Ray, which scared Jer away from the modelling aspect, but gave me more freedom to improve on the minifig model. Over Christmas break I wrote some extensions to Tk that allowed me to write a minifig posing program that could display and update a wireframe model of a minifigure in real time while joint angles were manipulated with sliders.

In January, the first real scene went public when BJTOYS.JPG was submitted to the Internet Raytracing Competition and placed second. In the following months we worked on additional tools, shirts and faces and expanded the library of available minifig descriptions.

I got a Job!

Work was interrupted at the end of February, when I left Purdue to start work a Sequent Computer Systems, Inc.. After a while, though, I had more free time than I had at Purdue, and I began working on modelling entire vehicles and buildings.

Rather than take Paul's approach and build an object library of bricks, plates and ramps and combine them with a simple parser, I decided to have the parser output the brick descriptions itself, which allowed for arbitrary sizes. This takes the same amount of memory during raytracing, but it does take a bit longer to parse. After creating a small throwaway prototype, I implemented a version that more closely paralleled the POV-Ray syntax I was used to. Now all that was left was to buy my favorite set with a large building (the 4554 Metrostation) and get to work!

You won't find any studies of individual bricks here. The bricks are realistic, but not highly detailed. My goal was to create buildings which required hundreds of bricks and draw attention to the completed structure, not the underside of a single 2x4 brick. I've tried to make a good tradeoff between looks and raytracing speed.


The project directory on my machine now takes up more than 60Mb (and the old Rayshade heirarchy continues to use 6Mb). There are more than 40 different shirt imagemaps and nearly 20 different faces. These have been combined to form 41 different "characters" that can be selected from a menu in the poser, and over 20 tools are available for the minifigs to use. Several entire buildings have been completed, and more are in progres. Jer continues to turn out shirts and faces for me when I bug him enough.

So show me the images already!

Currently the images are organized by theme. I'll probably stick with this unless it gets too unruly. Please read my disclaimer, the copyright information, and the technical information about viewing the images.

I do plan to provide more technical information about how the images were created and how the tools work, but I'm not ready to release any of this yet, so I think I'll withhold the information until the file formats and tools stabilize.

Comments and questions are welcome, please send me email and tell me what you think. Please don't ask for the source to the images, imagemaps or tools. It's not polished or organized enough for public consumption. If I make these materials available, I'll be sure to announce it here.

[Ben Jackson's Home]