Published on September 9, 2015
1. OSVR Platforms and Portability Ryan A. Pavlik, PhD Sensics, Inc. July-2015
2. Existing Platform Support ● Windows (Vista+, 32 and 64 bit) ○ Most users right now ● Android ○ Lot of interest ○ Major focus for us right now ● Linux ○ Primarily for dev, CI, and non-consumer applications
3. Portability ● OSVR-Core codebase ○ Written in C++11 with C public APIs ○ CMake build system for a single build system across all platforms ○ Most code is platform independent ● Potential ○ Underlying libraries used are all used on more platforms than OSVR supports right now ○ Portability a key design goal
4. Platform-specific adaptations ● Build on libraries (Boost, VRPN, HIDAPI, OpenCV, ...) with wide platform support already for minimum additional OSVR- specific adaptation ● Details of locating plugins, configuration files, and some hardware-interaction code varies between platforms
5. Terminology Notes ● Terms used as follows: ○ Native code/API ■ C++ or C code writing against the main C++ or C APIs of OSVR ○ Managed code/API ■ Wrapping the OSVR native API for a VM/managed language ■ Includes .NET/Mono/CLR - Managed-OSVR (via p/Invoke) ■ Includes Android Java (via JNI) ○ Foreign Function Invoke (FFI) ■ C ABI/API-based invocation API from non-C-family language ■ .NET uses an FFI-based wrapper, but FFI != managed (e.g. Python CTypes, LuaJIT, etc. is FFI, while Java JNI is not FFI) recall this diagram
6. Android Port ● Initially built and used like a desktop Linux ○ Command-line server ○ Android permissions affecting direct USB access, so server run as root ○ Client applications using Unity were trivial to port ● Native libraries ○ Build against using CMake, now also ndk-build compatible packages ● JNI wrapper - TODO (prototype exists)
7. Android Deployment Plan ● One package with an Android app providing configuration and hosting the server ○ Server is actually a library, just replace command- line interface with Android interface ● Additional packages providing plugins for hardware support and GUI for authorization/permission as required ● Launch-on-demand vs launch-on-boot
8. For additional information: ● OSVR developer portal ○ http://osvr.github.io ● Sensics – Founding contributor to OSVR, experts working in VR/AR for over a decade ○ http://www.sensics.com
OSVR Operating System Platforms and Portability July 2015. Discusses the current porting status of the OSVR software framework, as well as the steps taken ...
Slides and Notes from Presentations ... OSVR Operating System Platforms and Portability ... A technical presentation on the core of the OSVR software ...
LockHunter Operating system: ... Microsoft is making its operating system available for multiple platforms. F. ... Razer OSVR Virtual reality hasn’t ...
The system consists of three functional parts, namely, the H.264 streaming control, the program management and the media management. ... (OSVR) is proposed ...
OSVR Games; Mobile VR ... but back in early 2015 that they indefinitely “paused” support for those platforms. ... too and i like the portability of it ...
"With the release of the OSVR development ... use for developers wishing to harness the full power of modern heterogeneous platforms spanning ...
Implemented an user activity tracking system providing ... operating system. ... including embedded development for the Microchip PIC platforms, ...
Unity CEO Talks VR Format Wars and Android’s Importance to Virtual Reality (Interview ... Android operating system ... mobile platforms and ...