One promising area for the application of haptic display is tool use, both in terms of the design process and the training of new users. For example, designers can reduce prototyping time and costs by implementing new ideas in a virtual environment, rather than in a machine shop. Conventional VR has already been used in this way (see [28] for one example). However, for many tools, appearance doesn't allow a designer to understand how the tool will perform. For this class, functionality is demonstrated by the physical interactions the tool allows between a user and an environment. To explore this functionality, we need the ability to construct and interact physically with virtual environments.
As an example of this necessity, we can look NASA's use of virtual reality to train Space Shuttle support personnel in procedures that require them to use highly specialized hand tools. While some of these tools are quite ordinary, others have unusual shapes and functions (see Figure 2 for example).

Figure 2. Example of complicated hand tool used by astronauts in EVA.
Both of the examples discussed above call for an extremely flexible device, capable of being programmed to feel like a wide variety of environments. The flexibility we seek is not just in the device, but in the virtual environment software itself. We would like to be able to adjust parameters quickly and easily, without having to "recompile" the virtual environment. Our long-term goal is to design a haptics programming language which allows complex virtual environments to be rapidly assembled and modified, while providing stable, realistic interaction.