Virtual Reality Markup Language (VRML), is a 3D graphical language designed for viewing virtual worlds over the Internet. VRML is gaining widespread acceptance in the 3D community and on the Internet. Using this technology people can navigate through virtual cities and talk with people in different countries, all in a virtual space. At the moment, navigating in these worlds is done using a set of graphical controls that are manipulated via the mouse, and interaction is limited to a point-and-click interface. In order to interact more intuitively with a 3D world, other input devices must be supported. But, due to the nature of VRML viewers, worlds cannot be built that access the local machine to read data from the serial ports. In other words, with the current structure of VRML, it is difficult to use other input devices.
Alternative computer input devices have been researched for a number of years (Foley, 1974; Enderle, 1984; Buxton, 1983; Bleser, 1990; Jacob, 1992). This research has not brought to the general public anything much more advanced than a keyboard and a mouse. Although different mouse devices such as track balls and touch pads have become mainstream, they are still essentially the same as a mouse. In the research community a variety of input devices have been developed, used, and evaluated. Research shows that alternative input devices are required for 3D interaction (Hinckley, 1997; Ware, 1988; Jacob, 1992; Shaw, 1997). Since this research is ongoing, it is expected that new devices will emerge and they will need to be evaluated for different tasks.
This thesis will address the current difficulties with interacting with VRML worlds, and the need to provide a means to test new interface devices. I will attempt to resolve these problems by accomplishing the following:
Chapter 2 provides a background of work in 3D interaction. Java and VRML will also be described in this chapter. Chapter 3 is a formal declaration of the problem that this thesis is trying to address. Chapter 4 will cover the architecture of the system. It will discuss the design constraints for the system and will lay the groundwork for the development of the system. Chapter 5 will cover the toolkit that was developed based on the proposed architecture of Chapter 4. Chapter 6 will describe an application that was build using the toolkit as a means to test the overall efficacy of the system. Some test results are provided. Chapter 7 provides a summary of the work this thesis, along with recommendations for future investigations.