Open Source VR: Tales of a Conference Proposal

I recently submitted a talk to a conference that proposed an open call for action within the developer community to take a look at open source VR and to hopefully inspire people to help collaborate with the growing field of virtual reality. Unfortunately, my session was rejected with the statement that it was “too technical” for the conference attendees (a sentiment I heartily disagree with, but I digress – no hard feelings!) and as of right now, it doesn’t have a home. In the interest of open source (software, ideas, etc.) I figured I’d go ahead and share the proposal freely so that it can be recycled by the community, if anyone finds it interesting.

If you’re already familiar with OSVR, this is probably a bit too basic for what you may find interesting, but if you’re just joining in the community and want my overview of OSVR as a developer platform, read on!

ABSTRACT

Virtual and augmented reality technologies are taking off in the consumer space, and numerous hardware and software companies have begun creating devices and content to take advantage of the sci-fi staple becoming reality. In order to make content creation open and simplify overhead development costs, Open Source Virtual Reality (OSVR) aims to provide a common platform that supports the variety of VR devices and their respective platforms.

AUDIENCE

Anyone interested in understanding more about the field of virtual reality and the open source movement in the area of VR, including developers, designers, hardware engineers, and writers interested in contributing to open source virtual reality or building an application using the OSVR libraries and tool set.

Web developers looking to adapt existing applications for virtual reality.

INTRODUCTION

Open source virtual reality (OSVR) is a platform built on the principles of FOSS to serve as a location to provide developers with a library that serves as an abstraction layer over individual virtual reality devices. The benefits of open sourcing an abstraction layer for virtual and augmented reality technologies allows developers to build device-agnostic VR solutions. This supplements the “build once, run everywhere” mentality that is the cornerstone of current web development, and allows for a richer ecosystem of virtual content that is not locked to any particular head mounted display (HMD) or motion-tracking device.

OSVR also provides an open-source schematic for a head-mounted display, which allows creators to build their own custom headsets. The collective contribution to OSVR is led by Sensics, and is backed by other industry partners in both the hardware and software spaces. In addition to their software and hardware components, OSVR also provides additional tools, utilities, and plugins to common game engines.

OSVR SOFTWARE

The Open Source Virtual Reality project consists of a number of software components that can be used to create VR experiences that run cross-platform.

Picture1

Figure 1: The OSVR Architecture, OSVR.Github.io

OSVR-Core

At the root of OSVR is the OSVR-Core project, which serves as the middleware between the client software code and the binaries that are created by device manufacturers. When building a client project that utilizes the OSVR libraries, the OSVR-Core runs a local instance of the OSVR_server and connects the client components in a given game engine to the hardware attached to the device. (OSVR, 2015).

Utilities

OSVR Utilities provide lightweight software programs to help with troubleshooting and debugging virtual reality hardware. At present, there are two utilities that OSVR provides: OSVR-Tracker-Viewer, which visualizes the positions and orientations of connect hardware, and Distortionizer (OSVR, Distortionizer, 2015), which estimates correction parameters for visual distortion based on the type of virtual reality device connected to the OSVR-Core server. OSVR will automatically adjust the specific distortion and positional tracking to the connected hardware, but this tool gives developers a way to view the adjustments made by the OSVR-Core.

The OSVR Utilities also provide a model for how to integrate read data from the OSVR-Core server into client applications.

Plugins

OSVR currently supports several plugins that are used for both hardware devices and for integration into game engines. OSVR supports development in Unity and Unreal Engine, and currently has plugin support for the Oculus Rift and Vuzix headsets.

Development Strategies & Components

The skeletal components for using the OSVR platform for virtual and augmented reality development involve initialization of the OSVR Engine through OSVR_core and library, including the OSVR update method within your game’s update mechanism to handle changes in the hardware through the core library, and closing the connection to the OSVR_core server when your application ends. (Boger & Pavlik, 2014) Generally, within your application, you will need to handle additional tasks and communicate with the OSVR engine for events such as enumerating the connected devices, getting information about the device’s display, and sending your own data to the device.

 

Picture2

Figure 2: Example structure for an application built on the OSVR platform, from OSVR.com

OSVR HARDWARE

Spearheaded by Razer, OSVR provides a fully supported headset of their own with a launch date tentatively set for summer 2015. The OSVR Hacker Dev kit provides an HMD similar to the Oculus Rift that comes preassembled and ready to use out of the box, and is designed to support custom modules to make adjustments and customizations. (Razer, 2015) As part of OSVR, Razer has also made the 3D files and schematics available for interested parties to download and create themselves.

Picture3

 

Figure 3: OSVR headset, OSVR.com

Hardware engineers are also able to create customized add-ons, such as input devices, by downloading the HMD files for specifications.

OPEN SOURCE ONLINE WITH WEBVR

While not specifically under the umbrella of the OSVR project, WebVR is another initiative to open up virtual reality applications via the browser (Bringing VR to the Web, 2015). The WebVR project utilizes open source JavaScript libraries to render VR headsets stereoscopically with Three.js, and currently has support in certain Chromium developer builds and Firefox Nightly. The WebVR API is being designed to support VR devices and pass through the information to be used by websites.

When developing in WebVR, an OpenGL canvas created by Three.js is transformed with a special rendering library that applies distortion effects and positional tracking to the camera based on the hardware attached. This then calls a specific redraw when the position is changed, and the view on the screen of the canvas is updated accordingly.

OUTCOMES/CONCLUSION

After attending this talk, attendees should have an understanding of the current open source movement in the virtual reality space, and will have the knowledge required to get started with working on open source virtual reality projects.

BIO

[Redacted]

REFERENCES/BIBLIOGRAPGHY

Boger, Y., & Pavlik, R. (2014, December). An Introcution to OSVR. Retrieved from OSVR Developer: https://osvr.github.io/whitepapers/introduction_to_osvr/

Bringing VR to the Web. (2015). Retrieved from WebVR: http://webvr.info/

OSVR. (2015, March 9). A Brief Overview of the OSVR Software Repositories. Retrieved from www.osvr.com: http://www.osvr.com/blog/?p=35

OSVR. (2015). Distortionizer. Retrieved from GitHub: https://github.com/OSVR/distortionizer

Razer. (2015). OSVR Hacker Dev Kit. Retrieved from RazerZone: http://www.razerzone.com/osvr-hacker-dev-kit

Related Posts

Leave a Reply

Your email address will not be published.