It was obvious from the start that a book about Mindstorms was also a book about building with LEGO, and as such the visual elements of the book would be critical. After all, instructions like "slide two bushings onto a #8 axle, then insert axle through the third hole in a 1x16 beam" are difficult to follow. LEGO has known this for a long time, which is why their instruction books (such as the Mindstorms Constructopedia) feature some of the best technical illustrations to be found.
A number of different options were considered (such as photographs and artist's illustrations) before we settled on using 3D renderings. Making 3D renderings of LEGO models is hardly a new idea - there are already extensive libraries of LEGO pieces for POV-RAY, a public domain 3D rendering system. Although POV-RAY is an impressive rendering system, the models are typically created by manually editing text files, which can be quite time consuming. Due to the number of models in this book, we needed something that made construction of models much easier.
Ray Dream Studio, by MetaCreations, turned out to be just what was needed. Constructing accurate models for each of the basic LEGO pieces was somewhat tedious, but once the pieces existed, constructing the model for a complete robot was relatively simple. The animation capabilities were then used to break the model apart into different "steps", each of which was rendered as its own animation frame.
This project also had some special requirements which were not addressed directly by Ray Dream, thus we developed our own utilities to manipulate Ray Dream files as needed. For example, we wanted to construct the 3D models of various robots before all of the individual pieces were in final form. Rough drafts of the pieces were created, and the model was constructed using only rough drafts. Once the real pieces were completed, a custom program was used to merge the updated pieces into the existing model. Use of the draft pieces also made model construction much faster and more interactive since the draft pieces were less detailed and could be drawn much quicker than the final versions.
Another special requirement was the auto-generation of pieces such as bricks and beams. These pieces are actually families of pieces- a 2x4 brick isn't much different from a 2x8 brick other than the fact that one is twice as long as the other. Rather than creating each style of piece by hand, a number of perl scripts were used to auto-generate the piece give certain attributes (width, height, whether it had holes in it, etc).
Because the renderings were to be used for illustrative rather than photo-realistic purposes, many of the rendering features (such as shadows, reflections, etc.) were disabled. Where appropriate we also made the pieces differ slightly from reality in order to create better illustrations. For example, the edges of bricks (and plates and beams) are cambered to make the seam between adjacent pieces more visible.
Creating all of these renderings was an ambitious task, and I could not have done it alone. Rodd Zurcher created the 3D models for each of the individual LEGO pieces. There's a world of difference between Rodd's polished 3D models and the rough drafts I created. Rodd's attention to detail is what makes the renderings truly come alive.
Dave Baum's Guide to LEGO MINDSTORMS is literally packed with such illustrations. There are hundreds of figures, over 250 of which are 3D rendered LEGO models. Extreme Mindstorms: an Advanced Guide to LEGO MINDSTORMS also uses 3D rendered images, for its two robot projects.