Welcome to the inVRs Wiki!

It is intended to describe general concepts and parts which are dynamically updated. For detailed documentation and tutorials please take a look at the documents section. Code examples can be found in the source distribution of the framework, while the scientific concepts are explained in a variety of publications. An overview of these publications is given in the Bibliography section.

Overview

Networked Virtual Environments (NVEs) are getting more and more attention from the industry and research facilities. A vast amount of application areas ranging from psychology, architecture, training, scientific visualization over to art
and entertainment are using Virtual Reality (VR) technology. But it is still challenging to develop such applications since many aspects from a variety of research areas have to be taken into account. Software design, hardware development and human factors are to be considered for the creation of efficient NVEs.

Most VR applications still follow a low-level approach, where the NVE is tailored specific to the application domain. The use of scene graphs in combination with a complete application development is still cumbersome since often the mechanisms for interaction, navigation and synchronization are reinvented. On the other hand VR applications can be created using existing
NVEs, relying on scripting languages or authoring environments where graphical editors ease the design and development process. One of the major drawbacks of these solutions is their restrictiveness.

To overcome these mentioned issues and to ease the design and development process of NVEs the inVRs framework was developed. inVRs provides a structured approach using well-known software patterns. It is designed to formalize and reuse common interaction techniques and navigation methodologies, with the feature of automatic network distribution, by keeping up the needed flexibility of the low-level solutions.

Additional tools have been created for inVRs like the support of physics engines, a graphical editor for the layout of a VE, and a 3D widget system inside virtual worlds. Through the approach chosen for the internal communication and the network module the out-ofthe-box feature of concurrent object manipulation is supported. The inVRs framework is publicly available under an LGPL license at http://www.invrs.org/. It has been developed from 2005 till 2009. A large number of researchers and computer science students contributed to the code base of the framework and have created over 10 applications from the domains of new media art, architecture, entertainment, safety training, product presentation, and scientific visualization.

Features

  • Cross-platform API (Windows, Linux, MacOS X)
  • Runs on desktop as well as multi-display systems
  • Highly efficient rendering due to use of OpenSG as a scene graph
  • Simple mechanisms to integrate arbitrary input devices
  • Clear ways to structure Virtual Environments
  • Automatic network distribution and sharing of virtual worlds
  • Pre-defined navigation and interaction techniques
  • Well structured, modular, extensible framework components
  • Many out of the box features like networked physics simulation, avatars, etc.
  • Immediate support for concurrent object manipulation
  • Configurable via XML

Architecture

Detailed information on the individual components can be found in the sub pages provided below:

invrs_architecture_overview.png (64.5 KB) Christoph Anthes, 08/03/2010 03:48 PM