Current virtual environment systems are, for the most part, dedicated to specific applications such as engineering or surgery. The CRYSTAL project applied the concept of crystals, or 3D “windows,” to segment the virtual world into independent volumes, which may interact with each other. The contents of individual crystals can be very different from crystal to crystal, so the resulting virtual environment (VE) is not restricted to any unique context, and it is suitable as a general-purpose workspace. Crystals are created and owned by independent programs called modules, which serve as functional elements of the VE. There are basic modules to provide common functions, such as navigation, wand control, and so on. Extra modules can be launched to add content and functionality to the VE, and the modules can also be terminated interactively. Unlike “pipelined” systems for VE design, CRYSTAL modules are designed to self-assemble and resolve any interface conflicts automatically. As a result, they do not place a high demand on user proficiency in customizing VEs for a variety of uses.