440 likes | 552 Views
VR Juggler Technical Overview. A Virtual Platform for Virtual Reality Application Development Allen Bierbaum Iowa State University IEEE VR Tutorial. Who am I?. Allen Bierbaum Work VR Juggler Team PhD Student Iowa State University – Virtual Reality Applications Center (VRAC). Objectives.
E N D
VR Juggler Technical Overview A Virtual Platform for Virtual Reality Application Development Allen Bierbaum Iowa State University IEEE VR Tutorial
Who am I? • Allen Bierbaum • Work • VR Juggler Team • PhD Student • Iowa State University – Virtual Reality Applications Center (VRAC) www.vrjuggler.org
Objectives • Understand VR Juggler architecture • Knowledge of some technical details • Introduction to future VR Juggler developments • Please: Ask questions!!! www.vrjuggler.org
What is VR Juggler? • Open Source VR software development environment • VR Virtual platform & Application framework • Developed at Iowa State University • Project director: Dr. Carolina Cruz-Neira • 5+ years of development • VR Juggler team (3 people 10+ people at VRAC) www.vrjuggler.org
VR Juggler background • Motivation • Standard VR development environment that is: • Flexible & extensible • Maintainable • Modular • Cross-platform / Cross-VR System • Freely available – OpenSource • Allow community involvement • Extension and refinement • Peer review www.vrjuggler.org
VR Juggler features • Virtual platform • Application objects and framework • Performance driven • Performance monitoring • Flexible and extensible • Modular • Open source • Cross-platform – Irix, Linux, Win32, others… • Configuration system • Parameterization of VR system components • Run-time reconfigurable • GUI – vjControl www.vrjuggler.org
Virtual platform • Separates system dependent and system independent components www.vrjuggler.org
Virtual platform: Benefits • Benefits • Architecture and OS independence • Handles cross platform issues • Virtual platform scales • Device abstraction • Separates application from hardware • Proxies – handles to devices • Defines an operating environment for VR apps • The VP allocates resources and processing time www.vrjuggler.org
System Parameterization • Juggler “config chunks” specify single unit of configuration • Parameterize all configurable parts of system • Edited with Java base GUI (vjControl) www.vrjuggler.org
Kernel subsystem: Motivation • Motivating needs • System must be extensible • Add new devices and graphics APIs • System needs to be flexible • Adapt to VR systems, multiple configurations • System needs to be dynamic • Changes at run-time, added modularity • System must evolve over time • App survivability www.vrjuggler.org
Kernel subsystem • Microkernel architecture • Controls the entire system • Manages communication • Internal Managers • Core functionality beyond the scope of the kernel • External Managers • Provide an interface to the system that is specific to application type www.vrjuggler.org
Kernel subsystem: Benefits • Benefits • Modular system • Managers can be added, removed, and reconfigured • Discourages monolithic architectures • Mediator • Captures interaction • Synchronization • Portability www.vrjuggler.org
Internal managers • Input manager • Display manager • Config manager • Environment manager www.vrjuggler.org
Input Manager • Controls all devices in the system • Updates the devices • Allows users to request devices www.vrjuggler.org
Devices • Base classes for all device types • Extend system here www.vrjuggler.org
Device Proxies • All Devices are accessed through proxies • Proxies hide the true device type • Allows code and configuration to be device independent www.vrjuggler.org
Device Factory • All device types are registered • Allows for dynamic discovery and loading • Separates devices from the rest of the system www.vrjuggler.org
Display manager • Contains all information about display windows • Performs all viewing calculations www.vrjuggler.org
Other internal managers • Config manager • Holds (re)configuration requests • Environment manager • Communicates the state of the system www.vrjuggler.org
External managers • Draw manager • Sound manager www.vrjuggler.org
Draw manager • Provides external interface for applications • Allows access to API specific functionality • Handles all details of the API www.vrjuggler.org
Other External managers • Sonix: Sound manager • Generic interface for several sound libs • More in later talk… • Future… • Area for extension www.vrjuggler.org
Application objects • All VR Juggler applications are objects www.vrjuggler.org
Application objects • Override methods of a pre-defined interface • Derived class for each graphics API www.vrjuggler.org
Application objects • Benefits • Single interface between app and system • Low-coupling Robustness • Application survivability • Allows for flexibility in kernel • Run-time changes • Application management • Capture application in single unit • Multiple applications www.vrjuggler.org
Run-time (re)configuration • Most current systems • Static configuration • No way to modify settings at run-time • Configuring system • Test settings Change settings Restart application • Run-time Configuration • Configuration is done dynamically at runtime • Run-time Reconfiguration • Maximum flexibility • Allows settings to change during execution www.vrjuggler.org
Reconfiguration interface • vjConfigChunkHandler • API for handling configuration requests • Implemented by all Managers and some applications www.vrjuggler.org
Config Manager • Pending configuration queue • List of configuration requests • Stored in queue until kernel attempts reconfiguration www.vrjuggler.org
Reconfiguration process www.vrjuggler.org
Reconfiguration benefits • System setup and configuration • Easier initial setup using interactive testing • Reconfigure displays • Change physical devices • Application adaptation • Application switching at run-time • Configure applications parameters • Model loaded, navigation method • Robustness • Graceful recovery from device or app failures • Performance tuning • Adjust configuration based upon performance www.vrjuggler.org
Dependency management • Dependency checking between components • Components needing checking register a checker www.vrjuggler.org
System interaction www.vrjuggler.org
System interaction (cont) www.vrjuggler.org
VR Juggler 1.1 VR Juggler development direction
Motivation • New abilities and research areas • High-level tools • Technological advances • Fix design problems • Yes, we actually made some mistakes… www.vrjuggler.org
JCCL Gadgeteer Vapor www.vrjuggler.org
VR Juggler 1.1 Modules • Current Modules • Vapor – System abstraction • Gadgeteer – Device management • GMTL – High-performance math • JCCL – Configuration • VR Juggler – VR virtual platform • Sonix – Sound management • Tweek – Common GUI framework • This all used to be just VR Juggler… • Now the Juggler suite of tools • More on the way… www.vrjuggler.org
New features • Vapor • Serial port abstraction • Gadgeteer • Clustering • Run-time device type extension • Input from gfx windows • Cross-platform device drivers www.vrjuggler.org
New features (cont) • VR Juggler • Revamped configuration GUI • Window viewports • OpenSG & OpenSceneGraph • Performer reconfigurability • Kernel shutdown • Tweek • Palmtop interaction • Sonix • Sound management www.vrjuggler.org
High-level tools • Many new high-level tools in the pipeline • All part of the Juggler suite • In development • Collaborative networking • Sonification • User interfaces • and more… www.vrjuggler.org
Availability • Latest version always in CVS • Developer releases • VRJ 1.1 DR1 “on the way” • New website with documentation www.vrjuggler.org