As virtual environment (VE) technology becomes accessible to (and affordable for) an ever-widening audience of users, the demand for VE applications will increase. Tools that assist and facilitate the development of these applications, therefore, will also be in demand. To support our efforts in quickly designing and implementing VE applications, we have developed the Simple Virtual Environment (SVE) library. In this article, we describe the characteristics of the library that support the development of both simple and complex VE applications. Simple applications are created by novice programmers or for rapid prototyping. More-complex applications incorporate new user input and output devices, as well as new techniques for user interaction, rendering, or animation. The SVE library provides more-comprehensive support for developing new VE applications and better supports the various device configurations of VE applications than current systems for 3-D graphical applications. The development of simple VE applications is supported through provided default interaction, rendering, and user input and output device handling. The library's framework includes an execution framework that provides structure for incrementally adding complexity to selected tasks of an application, and an environment model that provides a layer of abstraction between the application and the device configuration actually used at runtime. This design supports rapid development of VE applications through incremental development, code reuse, and independence from hardware resources during the development.
IntroductionThe development of VE applications is an area inviting experimentation. In particular, the field is open to new applications, different device configurations, new techniques for rendering, interaction, and model maintenance. Such experimentation is most productive when new ideas and designs can be implemented quickly and then compared to previous implementations. However, developing even simple VE applications with limited or no software support requires a considerable amount of expertise and development time. In addition, it is quite difficult to reuse modules of VE applications in projects that use different configurations.To support the rapid development of novel VE applications that may introduce new environments, behaviors, or software techniques, we have developed