VR Juggler 1.0 Technical Overview

$Date: 2002/06/16 22:19:05 $


Table of Contents

Overview
Fundamentals
What is VR Juggler?
Virtual Platform: A virtual platform for virtual reality application development
Configuration information
VR Juggler Microkernel
Modularity
Mediator
Kernel portability
Consequences
Internal Managers
Input manager
Environment manager
Display manager
External managers
Draw manager
Other external managers
Application objects
Base application interfaces
No main() -- Don't call me, I'll call you.
Benefits of application objects
Run-time (re)configuration
Config chunk handler interface
Pending configuration queue
Dependency management
Run-time reconfiguration discussion
Multi-threading
How does everything get started?
System interaction
How well does VR Juggler meet the design goals?
Hardware abstraction
Run-time flexibility
Performance tuning
Cross-platform
Extensible
A. Appendix: Needs of VR system
Primary needs
Performance
Extensibility
Flexibility
Simplicity
Robustness
Performance
Low latency
High frame rate
Support for hardware
Performance monitoring
Extensibility
Hardware abstraction
Simple extension
Do not require application changes
Flexibility
Scalability
Cross-platform
Run-time changes
Support use of other application toolkits
Do not be overly restrictive
Simplicity
Short learning curve
Rapid prototyping using simulation
Robustness
Failure protection
Maintainability and correctness

Overview

This document is the technical for VR Juggler (VRJ). It describes the design choices and implementation details of VR Juggler. We describe what the major components of the system are, why the components are there, and how the components are implemented and used with the rest of VR Juggler.

This guide is designed to be used by developers who want to extend VR Juggler and people who are just interest in the low-level details of the system. As such, it is expected that readers are already comfortable with the basics of VR Juggler such as writing an application and configuring the system. This guide will not describe these basic details of VR Juggler but will instead focus on the behind the scenes details of the underlying system.

Before we get start describing the system in detail, we are going to take a moment and explain what VR Juggler is and describe some of the fundamental concepts and metaphors of the system. Hopefully this will make the design more clear and provide some insight into our design philosophy.