Kieler Open Source und Linux Tage 2017 report

So it all started with a conversation in #godotengine, the guys were planning to go to the Kieler Open Source und Linux Tage and since Bastiaan recently implemented OpenHMD support in Godot, we thought it would be the best opportunity to tag along and do a shared booth!
We arranged our travel, got a place to stay at one of the locals (Thanks Stefan! it was much fun!) and started packing.

We wanted to show off recent work, so we build a demo using the Oculus DK2 and the NOLO for room scale and controllers with the dev branch of Godot 3.0.
After a week of on and off scene building, I went on with my brother Yngwie towards Kiel by plane (over Hamburg). Of course after some delays and some confusing German train-rides we arrived and found a great location which accurately depicts the German Linux community as I know them (with course on the Friday evening the Grill and beers were setup and a good time was had).

With pH5 already waiting for us, together with the Godot guys we setup a nice presentation and hacking area to show off what we have been up to.

Read More Kieler Open Source und Linux Tage 2017 report

H(A)ckathon 2017 report!

We are proud to report back from the first dedicated international OpenHMD H(A)ckathon, which took place last week end in Heerlen, The Netherlands.

The H(A)ckathon was arranged by Joey (@JoeyFerwerda) and hosted in the Ackspace Hackerspace. Thanks for having us!

It was a perfect opportunity for the OpenHMD community to meet-up IRL, drink mate, beer and whiskey, eat stroopwafels and make plans for world domination, not necessarily in that order.

Apart from enjoying the dutch high summer with over 30°C and having Greek food at Nisos, we also had amazing conversations about libre VR and Kalman filters.

We were also able to get work done, had remarkable breakthroughs in our R&D and took care of maintenance tasks.

OpenHMD support in Godot

The Godot game engine got in touch with us to mention they had an initial implementation for OpenHMD integration! By attending the H(A)ckathon virtually they were able to collaborate with us on bug fixing, testing with multiple devices, and setting up hidapi correctly.

HTC Vive

ph5 (@pOH9) showed his recent Vive progress where he implemented lens distortion using the Vive’s config values in Vulkan and visualizes his positional calculations.

Lubosz (@spulaniraba) dug up his OSVR-Vive-Libre code and tested it with multiple Vive firmware versions and base station setups. It was really beneficial to have 3 Vive HMDs around for that. He implemented a real time plot of the Lighthouse base station view by adding Python bindings and plotting the data with matplotlib. 

The plot shows the horizontal and vertical angles in ticks tracked by the HMD’s sensors, emitted by Lighthouse. He also toyed with OpenCV’s solvePnP implementation to receive 3D position by combining the light samples with the HMD sensor positions from the config.

Oculus Rift

DK2 and CV1 positional tracking made huge leaps forward.

Camera-LED sync was achieved and blob tracking has been implemented, which is the groundwork for positional tracking. We were very excited to see blob tracking working on a fairly large distance, as you can see in this video. We are very close to get functional positional tracking working. You can find the current draft implementation in noname’s OpenHMD-RiftPlayground repository.

The blob tracking will also be reusable for the Oculus Rift CV1 Touch controller, where pH5 was able to set up sync by improving his implementation, which can be found in ouvrt.

Special thanks to Refresher for letting us use his controllers!


Our PSVR code also received a couple of updates. The method of getting the identifiers was rewritten and setting the modes is more stable now. There is still a bug on Windows, since it seems that writing the modes to the controller returns error states, which requires more investigation.

Wireshark dissectors

Work on Wireshark dissectors has been done, currently focused on the Oculus Rift. We will extend this for other devices, so it will be way easier reading packet dumps and reverse engineer new and existing devices. The dissectors can be found in bleijdfist’s branch of the OpenHMD-Tools repo.

OpenHMD Unity plugin

Additional testing was done on the Unity plugin, a new version will be released this week on the plugin’s download page.


Experimental Unity plugin released!

Today we have uploaded our experimental Unity Plugin!

It is basic, and it lacks things like our Universal Shader system, but its a good step!
Based on the .NET bindings by and a bit of tinkering, we made a good base for implementing Multi Platform VR support in Unity.
While technically able to support every platform OpenHMD supports, the first implementation is implemented for Windows 64-Bit and Linux 64-Bit, this due OpenHMD.NET not supporting Mac yet.
If you want to give Mac support a whirl, feel free to help out on the OpenHMD.NET bindings and extend the current system.

We chose to implement using their existing stereo pipeline using their Split Stereo Display hooks in their VR pipeline.
This method is used by Unity developers themselves to debug external HMD libraries and should be relatively optimized.

After some cleanup and testing , the Unity project will be uploaded as well to a Github repository.
Contributions are of course welcome, for now feel free to shout at me through my Email, Or join us at our IRC.

New Website

It took a bit of planning, but we finally have a new website!

This allows us to centralize our information, write blog posts, and show off projects easier!
We will slowly add project members to the website, allowing others to write up blog posts.

Our Device page is hooked up to the Github wiki to allow for the fastest up to date information regarding device support.

Over the next couple of weeks we will make small tweaks to the website, if you encounter any errors, please contact us through the contact page, or drop by on #openhmd.