Lego Virtual Construction

My experiences working with user interfaces for lego style virtual construction began in self-directed research projects at CMU when I attempted to build my own lego based 3D modeling tool. I wanted this tool because I was interested in building Lego based robots, and I didn't have all the blocks that I needed, and I also found it tiresome to have to unbuild large portions in order to change small sections of the robot. I wrote my first version of such a tool in OpenGL on a SparcStation, and it was very primative. My next versions were all written in Java3D. I would soon realize that although I was learning about 3D graphics, the difficult computational problem was "connectivity": determining when two collided blocks should be connected, and how.

Ultimately, I was able to make contact with Lego and it was realized that it would be mutually beneficial if I was to spend some time at Lego and work on the Digital Designer team, the team that was making Lego's own 3D construction tool. Thus, I spent one year in Denmark working for Lego as an intern on the Digital Designer team, and I was able to share ideas and help make the initial release a success. I focused on verifying correctness of documentation, identifying bugs in pre-releases, and building a testing tool which would allow bricks to be loaded on screen and then interacted with in the context of Lego's connectivity algorithms.




An interface developed at Lego Systems A/S which I gave input into and helped critique.  This interface represents the current state of the art in building block construction interfaces for Lego.  My inputs contributed to the design of the menus as well as resolving brick interaction issues. We also discussed what modes the user could be in and how the icons would influence that.




An interface I designed and developed for Lego Systems A/S to serve as a platform to test new ways of interacting with Lego building blocks.  The tool is capable of showing various properties of the brick geometry as well as using different view control systems.  This system allows Lego to rapidly test new ways that children can interact with 3D building blocks.




An interface I designed and developed to interactively build complex 3D Lego models, as a part of my undergraduate thesis entitled “Virtual Building Blocks.”  The interface made use of 3D icons as well as interactive 3D manipulators for positioning Lego blocks, in an effort to build a fully mouse driven interface.  The goal of the project was to discover new and simpler ways to manipulate geometry in a 3D world.




An interface I designed and developed to interactively build complex 3D Lego models, as a part of my undergraduate thesis entitled “Virtual Building Blocks.”  The interface was capable of using a primative form of depth queing which allowed bricks that were farther away to seem darker.




An interface I designed and developed to interactively build complex 3D Lego models, as a part of my undergraduate thesis entitled “Virtual Building Blocks.”  The interface could be put into a traditional 3 or 4 view parallel projection mode similar to that of a CAD tool. There was also a single view parallel projection mode whereby blocks at different distances would appear to have the same relative sizes.




An interface I designed and developed to interactively build complex 3D Lego models, as a part of my undergraduate thesis entitled “Virtual Building Blocks.”  The interface could work with a Microsoft Easy Ball. This helped give the feel that the user was interacting with the sphere on the screen, which contained the focused block.




This picture depicts my friend Adam interacting with a virtual animated model. The virtual model in the first picture was added in via Photoshop to show what Adam was seeing. Adam was wearing 3D stereo glasses and a video camera, and the virtual 3D lego model was overlayed in real-time into the view he was looking at, as long as the special visual queue was in view.