New OSVR Core features: path tree updates

Here is an update on some important OSVR improvements:

OSVR Core:

This relates to version v0.2-1-g0f15a69

This release is an extensive update: fully-configurable path tree, use of device descriptors for auto-routing, and more.

Path tree refresher

Path trees are an important concept in OSVR and perhaps worth a quick reminder. OSVR maintains a “path tree” – similar to a URL or file system path – in which all the sensing and rendering data is made available. Aliases are configured in the server to essentially redirect from a semantic path (a path with a meaningful name) all the way back to the system-specific hardware details. Thus, while direct device access by name is possible, it is not recommended: instead, we recommend accessing semantic paths. This accommodates use cases where the hardware is not immediately available at startup or is changed during operation without any impact to the application developer. Some examples:

  • A path capable of position, orientation, or pose (position and orientation) callbacks or state access, associated with the left hand: /me/hands/left
  • Position of the “0” controller of the Hydra, directly accessed in the namespace of the com.osvr.Multiserver plugin: /com_osvr_Multiserver/RazerHydra0/tracker/0
  • Output of the first smoothing filter in a hypothetical org.example.smoothing plugin: /org_example_smoothing/smooth_filter/0

Just like a game allows mapping of various buttons to various game actions, OSVR allows defining the connection between interfaces, analysis plugins and actions. For instance:

  • /joystick/button/1 → /actions/fire maps the first joystick button into a fire action. While the game could choose to access /joystick/button/1 directly, it is recommended to access /actions/fire in this example because this allows changing the flow of information from the hardware through the OSVR layers without changing the game itself.
  • /com_osvr_Multiserver/RazerHydra0/tracker/0 → /org_example_smoothing/smooth_filter/0 → /me/hands/left specifies that the position of the first Hydra controller goes through a smoothing filter and then is mapped to the left hand.

The connection between interfaces can be pre-loaded or can be changed dynamically.

Key changes:

  • Updated server and client internal data structures, for:
    • Fully-configurable path tree, with support for single or multi-level aliases for semantic name use with no additional performance hit. For instance, this allows a game-friendly path such as /me/hands/left to be dynamically mapped to a path in the plugin /com_osvr_Multiserver/RazerHydra0/semantic/left which in turn is mapped to the physical path /com_osvr_Multiserver/RazerHydra0/tracker/0. All these mappings are resolved up-front so they do not create a performance hit at runtime.
    • More efficient data transfer.
  • Partial to complete auto-configuration of aliases based on JSON device descriptor data embedded in plugins.
  • Full access to external (local or remote) VRPN servers/devices with Tracker, Button, and Analog interfaces. (Previously, only experimental support for Tracker devices) See the updated osvr_server_config.externalvrpn.sample.json
  • Attributes of display now controlled and configurable by the server: see osvr_server_config.dSight.json for config info. This allows switching between various HMDs (or other displays) without recompiling the application.
  • Display descriptor files added for a wide range of HMDs and display modes. See the OSVR HDK descriptor as an example

Breaking changes:

  • To support the data structure updates, some internal messages were changed, so v0.2+ client libraries can only communicate with v0.2+ servers: v0.1 and v0.2 do not interoperate. (However, client ABI or overall client API did not change, so you should be able to just replace the DLLs without recompiling your client application.)
  • If your device driver was not submitting a JSON device descriptor, it will be mostly inaccessible as that is used to populate the path tree. See the example on how these work.
  • The method of configuring access to external VRPN servers has changed, so if you’re using that functionality, see the updated sample config files.
  • Plugins have been renamed, and many configuration files were able to be simplified greatly. See the updated sample config files.

Additional changes:

  • New tools: There are new tools: osvr_print_tree displays the contents of the path tree (try -h for help with command line arguments), and PathTreeExport exports path tree structure to DOT format – see the documentation for usage
  • Support for auto-detecting a USB serial port name by VID/PID.
  • More efficient data transfer
  • The contents of the osvrTransform and osvrRouting shared libraries (.dll files) have been folded into osvrCommon and thus those files are now no longer produced by the build, nor need to be distributed. This is internal API only, so no changes to apps expected.

Definition of OSVR interfaces:

We are working to define and enhance additional OSVR interfaces such as eye tracking, locomotion (for devices like those from Cyberith and Virtuix) as well as support additional devices. If you are interested in participating in this process, please let us know.

Additional updates:

1. The OSVR waffle.io board contains an overview of issues currently in GitHub issue trackers for all OSVR framework projects. It summarizes the issues in a number of lists:

  • Those under “Contributions Wanted” are likely to be the easiest entry points into contributing, though in some cases they may simply be tasks that require skills that existing contributors do not have.
  • Those under “Ready” are not blocked by any other issues and are approved for development for integration.
  • Those under “In Progress” should typically show a user who is working on them – if you want to take on a task, move it here and assign yourself.
  • The “Done” list should be self-explanatory – it contains closed issues from the past 7 days (automatically removed).
  • All issues not otherwise assigned to a list end up in “Backlog”. You’re welcome to work on these (whether through verification, triage, or development), though please use the issue thread to communicate your plans and progress.

Of course, the issue lists are not all-encompassing: if you’ve got a contribution you’d like to make, we’d love to see it! Filing an issue on the right project would be a great first step.

2. Follow OSVR on Twitter @OpenSource_VR

These latest updates also include contribution from the OSVR community, for which we are very thankful.

Interested in contributing? Start here: http://osvr.github.io/contributing/

Any questions or issues? email support@osvr.com

Thank you for being part of OSVR!

Unity plugin improvements, .Net bindings and new projects

Dear OSVR developers,

We wanted to briefly update you on several OSVR improvements:

Unity plugin:

Refers to version: 0.1.71-ga184206

Key changes (see CHANGES.md file for complete list):

  • Updated plugin to be compatible with Unity 5.
  • Increased frequency of OSVR client updates for reduced latency as well as additional performance improvements
  • Dynamically sets display parameters (field of view, resolution, side by side mode) based on JSON display descriptor. This allows the same Unity app to run well with multiple different OSVR-supported HMDs

We recommend that existing users of OSVR Unity plugin re-build their project with this new plugin. The performance and usability improvements are worth it.

Additional updates:

  • Improved locating of DLLs in both the editor and built players, and improved locating of the (temporary, game-local) json file in built players. Previously, some Unity projects ran fine inside the editor but had to have files copied over to run standalone. With this fix, it is no longer necessary to move the built executable to the project root.
  • Modified DisplayInterface to look for json in _Data folder at runtime.     If it’s not there, load json from Unity scene as usual.
  • Moved DLLSearchPathFixer.fix() to Awake().     Removed constructor.
  • Created static DeviceDescriptor.Parse method and moved code from DisplayInterface.GetDeviceDescription over to to this static method.
  • Untabified changes to DeviceDescriptor and DisplayInterface.

This version does not yet include support for Unity 5 64-bit – that is in progress and being tested, expected soon. https://github.com/OSVR/OSVR-Unity/issues/19

Vuzix plugin:

Version v0.1-18-g7758a1c

  • Resolved issues with orientation and zero-point.

 

.NET bindings:

The base .NET bindings for OSVR have been extracted from the OSVR-Unity plugin into a separate repo – https://github.com/OSVR/Managed-OSVR – for optimal re-usability, and are being actively improved by us and the community. This separate version currently includes support for 32 and 64 bit native libraries, have a fully MSBuild-based build system, and builds assemblies for both .NET 2.0 and 4.5 framework versions. A NuGet package is coming soon https://github.com/OSVR/Managed-OSVR/issues/2

New projects on osvr.github.io:

  • OSVR HDK: includes production file for the OSVR Hacker Developer Kit
  • sensics/Latency-test: includes code and instructions for Arduino-based latency tester

 

Definition of OSVR interfaces:

We are working to define and enhance additional OSVR interfaces such as eye tracking, locomotion (for devices like those from Cyberith and Virtuix) as well as support additional devices. If you are interested in participating in this process, please let us know.

Additional updates:

1. We have updated a couple of white papers on the OSVR site:

2. We are providing additional suggestions for OSVR roadmap on our Wiki page
3. The OSVR waffle.io board contains an overview of issues currently in GitHub issue trackers for all OSVR framework projects. It summarizes the issues in a number of lists:

  • Those under “Contributions Wanted” are likely to be the easiest entry points into contributing, though in some cases they may simply be tasks that require skills that existing contributors do not have.
  • Those under “Ready” are not blocked by any other issues and are approved for development for integration.
  • Those under “In Progress” should typically show a user who is working on them – if you want to take on a task, move it here and assign yourself.
  • The “Done” list should be self-explanatory – it contains closed issues from the past 7 days (automatically removed).
  • All issues not otherwise assigned to a list end up in “Backlog”. You’re welcome to work on these (whether through verification, triage, or development), though please use the issue thread to communicate your plans and progress.

Of course, the issue lists are not all-encompassing: if you’ve got a contribution you’d like to make, we’d love to see it! Filing an issue on the right project would be a great first step.
These latest updates also include contribution from the OSVR community, for which we are very thankful.

Interested in contributing? Start here: http://osvr.github.io/contributing/

Any questions or issues? email support@osvr.com

Thank you for being part of OSVR!

 

OSVR Opens Development Roadmap and Releases HDK Production Files

OSVR OPENS DEVELOPMENT ROADMAP AND RELEASES HDK PRODUCTION FILES

Community to help drive Open Source Virtual Reality software development; additional partners and universities announced

 

LAVAL, FRANCE (LAVAL VIRTUAL 2015) – Organizers of Open Source Virtual Reality (OSVR), a software platform designed to set an open standard for virtual reality devices, today released the OSVR Hacker Developer Kit (HDK) production file and the OSVR development roadmap.

The OSVR HDK is a hackable head-mounted display offering high-quality optics that work to reduce distortion in virtual environments. Any user can view production files of the OSVR HDK and the developer roadmap, streamlining the efforts of those that want to make their own hardware based on its design.

“With the release of the OSVR development roadmap, the process for creating new VR hardware and software on the platform can be accelerated significantly,” says Michael Lee, VP of software at Razer. “We welcome the support of VR enthusiasts everywhere.”

Additionally, OSVR partners announced eight new supporting partners and seven additional universities joining the coalition. OSVR has now grown to over 90 supporting companies and research institutes since its launch in January.

“OSVR offers variety and choice in peripherals, programming models and now hardware designs, all fueled by our diverse partner base and the ingenuity in the open-source community,” says Yuval Boger, CEO at Sensics, a founding contributor to OSVR. “We look forward to working with the community to provide additional game engine plugins, hardware interfaces, and intelligent real-time analysis capabilities.”

Interested developers can learn more at http://osvr.github.io/contributing/.

New OSVR Supporters:
3rd Planet is a new media company that provides the travel and tourism industry an interactive 3D platform to show travel destinations of the world. They are embarking on a wonders of the world project to showcase some of the best destinations of 2015.

About Face VR is dedicated to enhancing user comfort in virtual reality by creating premium ergonomic accessories for head mounted displays.

Aurora Gaming is a gaming lounge entirely dedicated to VR, showcasing new and upcoming VR software and hardware to a wide audience.

Avnet provides customers around the world with the electronic components, enterprise computer solutions, services and embedded technology they need to grow their businesses.

CSRV provides 3D virtual reality application development to multimedia content production staffs, including communication and marketing, design, training and scientific research. The technology allows its users to navigate the virtual environment in real-time. 

Kinoki360 creates entertainment content and experiences based upon 360° photography and video for agencies or clients in a photorealistic approach.

Media Ventures owns leading premium online video channels spanning four continents. Covering Hollywood, entertainment and global news, its in-house producers interview the world’s top celebrities and newsmakers.

Sparc Interactive is using virtual reality technology on numerous projects including recreation of historical events, interactive vacation touring, and creating VR cinema with VFX studio partners.  

TwoBigEars focuses on improving implementation and design of VR audio by providing access to real-time tools using spatial audio, geometry based reflections, environmental modelling and occlusion.

Vertigo Games is currently working on two VR projects: World of Diving, a VR-enabled online diving adventure exploration game.; and Skyworld, which brings back the basic, gameplay reminiscent of classics in a groundbreaking VR experience.

VirtualRealPorn is at the forefront of the new frontier of virtual reality pornography that is revolutionizing and reinventing the adult film industry. With vast experience creating stereoscopic adult entertainment for virtual reality technology in the adult film industry.

ZeroLatencyVR creates free-roam, wireless VR experiences by using wearable technology and motion capture to allow players to explore virtual spaces like they do real life.

Additional universities joining the OSVR academic program:
Aalborg University, Denmark
Clemson University, USA
Columbia University, USA
Oklahoma State University, USA
University College Cork, Ireland
University of Maryland Baltimore County, USA
Worcester Polytechnic Institute, USA

About OSVR:
OSVR™ is a software platform designed to set an open standard for virtual reality input devices, games and output to provide the best possible VR game experience. Supported by industry leaders, the OSVR framework unites developers and gamers alike under a single platform.

For the full list of OSVR supporters and more information, go to www.osvr.com.

Like OSVR on FB: https://www.facebook.com/OpenSourceVR

Follow OSVR on Twitter: https://twitter.com/OpenSource_VR

 

Press Contacts:
OSVR
press@osvr.com

###