Comments and reflections on the 3DM user interface

3DM stands for 3D Modeler. It is designed to allow a user wearing a head-mounted display (HMD), with a single hand-held 3D mouse, to create 3D objects. What I provide here are some comments and reflections on what I think worked, and what didn't.

Menus and tool boxes

We started with two physically based paradigms, the tool belt and the tool box. For both, we use the same palette of tools, and both can be placed arbitrarily in the environment. The difference is that the tool belt stays at a fixed position relative to the users body while the tool box stays at a fixed position relative to the physical room.

Of these two, the tool box is much easier to use. I believe the problem with the tool belt is that there is no tactile feedback. When I wear a physical tool belt, I don't have to look at it to find a tool. I just reach to about where the tool should be and pick the one I want by feel. Without tactile feedback, you have to look at the tool belt to pick a tool.

The tool box can be placed anywhere convenient in the environment, and will hang there until it is moved again. The tool box is fixed in physical space. In other words, if the user puts the tool box one step away to the left, then scales the world down and flies to another location, they can still expect to find the tool box one step away to the left.. This works pretty well, as users can usually remember where they placed the tool box.

In the palette, we originally had a 3D icon for every tool or command that 3DM supported. This let to lots of pictures, many of them rather cryptic to the uninitiated. We shortly switched to only keeping a handful of tools in the palette proper, just those that change drawing modes or are used for basic navigation, and put everything else into menus that can be pulled down from the top of the tool box.


Unfortunately, while 3DM remains a popular demo, it has never been used to create any serious models. Why? I believe it is because it doesn't have enough modeling constraints.

3DM's only primitive is the triangle, and we spent considerable effort on making sure that you could snap to existing vertices when constructing new triangles or shapes. This allows the creation of models that are truly connected. We also allow snapping to a 3D grid. The grid spacing automatically splits or merges as the user zooms in or out, which I think works well. Finally, we have world-aligned rotation and translation constraints (e.g. translation along the x-y plane without rotation). But that's it.

We also need to support more modeling primitives than just triangles and tessellated shapes, but I believe that is secondary. To be able to construct decent models, we need a full set of constraint functions, such as can be found in the average CAD program. This includes snapping to be perpendicular or tangent to existing objects, snapping to centers of spheres, snapping to edges instead of just vertices. Until then, anything we create will have a "hand drawn" or "sketch" feel.

HMD modeling has great promise for naturally using 3 dimensions to construct objects in 3 dimensions. To date, I have not seen any HMD modeler that is useful for serious modeling tasks. I look forward to the day when I will.

Marc Olano <>
Last modified: Tue Jul 2 11:03:01 PDT 2002