The Simple Virtual Environment Library: An Extensible Framework for Building VE Applications

  • Authors:
  • G. Drew Kessler;Doug A. Bowman;Larry F. Hodges

  • Affiliations:
  • Department of Electrical Engineering and Computer Science, Lehigh University, dkessler@eecs.lehigh.edu;Dept. of Computer Science, Virginia Polytechnic Institute and State University;College of Computing, Georgia Institute of Technology

  • Venue:
  • Presence: Teleoperators and Virtual Environments
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.