Background Information
History
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.
Motivation
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.
Progress
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.
Today...
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.