1 / 42

VR Juggler Technical Overview

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.

galia
Download Presentation

VR Juggler Technical Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VR Juggler Technical Overview A Virtual Platform for Virtual Reality Application Development Allen Bierbaum Iowa State University IEEE VR Tutorial

  2. Who am I? • Allen Bierbaum • Work • VR Juggler Team • PhD Student • Iowa State University – Virtual Reality Applications Center (VRAC) www.vrjuggler.org

  3. Objectives • Understand VR Juggler architecture • Knowledge of some technical details • Introduction to future VR Juggler developments • Please: Ask questions!!! www.vrjuggler.org

  4. 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

  5. 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

  6. 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

  7. Virtual platform • Separates system dependent and system independent components www.vrjuggler.org

  8. 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

  9. 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

  10. www.vrjuggler.org

  11. 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

  12. 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

  13. Kernel subsystem: Benefits • Benefits • Modular system • Managers can be added, removed, and reconfigured • Discourages monolithic architectures • Mediator • Captures interaction • Synchronization • Portability www.vrjuggler.org

  14. Internal managers • Input manager • Display manager • Config manager • Environment manager www.vrjuggler.org

  15. Input Manager • Controls all devices in the system • Updates the devices • Allows users to request devices www.vrjuggler.org

  16. Devices • Base classes for all device types • Extend system here www.vrjuggler.org

  17. 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

  18. Device Factory • All device types are registered • Allows for dynamic discovery and loading • Separates devices from the rest of the system www.vrjuggler.org

  19. Display manager • Contains all information about display windows • Performs all viewing calculations www.vrjuggler.org

  20. Other internal managers • Config manager • Holds (re)configuration requests • Environment manager • Communicates the state of the system www.vrjuggler.org

  21. External managers • Draw manager • Sound manager www.vrjuggler.org

  22. Draw manager • Provides external interface for applications • Allows access to API specific functionality • Handles all details of the API www.vrjuggler.org

  23. Other External managers • Sonix: Sound manager • Generic interface for several sound libs • More in later talk… • Future… • Area for extension www.vrjuggler.org

  24. Application objects • All VR Juggler applications are objects www.vrjuggler.org

  25. Application objects • Override methods of a pre-defined interface • Derived class for each graphics API www.vrjuggler.org

  26. 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

  27. 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

  28. Reconfiguration interface • vjConfigChunkHandler • API for handling configuration requests • Implemented by all Managers and some applications www.vrjuggler.org

  29. Config Manager • Pending configuration queue • List of configuration requests • Stored in queue until kernel attempts reconfiguration www.vrjuggler.org

  30. Reconfiguration process www.vrjuggler.org

  31. 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

  32. Dependency management • Dependency checking between components • Components needing checking register a checker www.vrjuggler.org

  33. System interaction www.vrjuggler.org

  34. System interaction (cont) www.vrjuggler.org

  35. VR Juggler 1.1 VR Juggler development direction

  36. Motivation • New abilities and research areas • High-level tools • Technological advances • Fix design problems • Yes, we actually made some mistakes… www.vrjuggler.org

  37. JCCL Gadgeteer Vapor www.vrjuggler.org

  38. 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

  39. New features • Vapor • Serial port abstraction • Gadgeteer • Clustering • Run-time device type extension • Input from gfx windows • Cross-platform device drivers www.vrjuggler.org

  40. 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

  41. 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

  42. Availability • Latest version always in CVS • Developer releases • VRJ 1.1 DR1 “on the way” • New website with documentation www.vrjuggler.org

More Related