Thinking about a new peripheral such as a motion/hand/eye/position tracker or a different kind of device into the OSVR software platform? Consider this:

Benefits

For your customers

  • Immediate access to a wide spectrum of content including SteamVR and native OSVR content.
  • Ability to use your HMD with dozens of HMDs.
  • Access to Windows, Linux, Android and Mac platforms.
  • Ability to use the peripheral locally or over a network.

For developers using your HMD

  • Optimized engine plugins including Unity, Unreal, WebVR, Amazon Lumberyard, SteamVR and many more. These plugins are frequently updated to support the latest engine versions and include new contributions from the Sensics team and the global OSVR community.
  • Avoid the need to learn a vendor-specific API and write applications that run on many devices of the same type.
  • Ability to connect the output of your device to pre-existing software modules such as those offering sensor fusion, image identification and more.
  • Ability to use a wealth of pre-existing test, debugging and logging tools such as a latency testers.

For your organization

  • Focus on your core competencies instead of trying to create a “full stack” system on your own
  • Get to market faster and with a more complete product offering
  • Be part of the world’s largest open-source VR ecosystem and enjoy its technical and marketing benefits

How it’s done

Adding a peripheral to OSVR can be done by practically anyone. Alternatively, you can contract Sensics engineers – the primary architects of the OSVR software platform – to perform this integration service quickly and cost-effectively for you.

Whether you do it yourself or have Sensics do it, here’s what needs to be done:

OSVR implements several types of interfaces such as tracker, imaging or button. Just like a multi-function printer on your desktop appears to a PC as several interfaces – printer, scanner, fax, etc. – a VR or AR device can implement several interfaces. For instance, the Razer Hydra controller implements two XYZ position interfaces (one for the left hand, one for the right), two orientation interfaces and several button sets.

The first step in creating an OSVR plugin is determining what kind of OSVR interfaces your device wishes to implement.

A more detailed explanation of the process of writing the actual plugin can be found here and here (part of the OSVR-core documentation)

Often, it is good to examine (or reuse) portions from existing plugins. For instance:

  • Verify correct operation using  OSVR utilities and demos such as Tracker Viewer and Palace
  • Verify SteamVR integration to ensure users can use SteamVR content with this HMD
  • Create simple installer to deploy the plugin
  • Add the installer to the OSVR plugin repository
  • If applicable, open-source your plugin code so that the community can help improve it