It has been a couple of months since we last looked at the status of Linux VR. Let's take another look at what Linux support is like for the Vive, Rift CV1 and HDK2 by looking at libraries/APIs (SteamVR, Oculus SDK, OSVR, OpenHMD, libsurvive, Vrui), game engines (Unreal, Unity) and WebVR.
About three and a half months ago SteamVR for Linux was released in beta. I probably have most to say about this and the Vive headset, since I own one and thus have hands-on experience. About a week ago, Valve released a fix for a pair controller issue some people, including me, were having. This allowed me to give SteamVR another try. One interesting thing I noticed is that the last update of the SteamVR-for-Linux README removed most mentions of "beta", and that Nvidia driver 381.22 is now used. SteamVR is still clearly a beta "development release". I only tried SteamVR and some SteamVR games for a couple of hours recently, but ran into a wide variety of errors.
(continues after the image)
Occasionally, SteamVR is running but not visible. Or it is visible but something has to be killed (e.g. steamtours process) or removed (intel_powerclamp module) for it to work properly. I find myself having to reboot far too often, simply because rebooting fixes problems that closing down and restarting both Steam and SteamVR does not.
Locomancer allows its users to build track layouts for model trains, using various toy boxes. It features a variety of locomotives, rail cars, tracks and (regular and custom) scenery. It's possible to remotely operate trains, and even to ride them. See its Steam page for screenshots. For some reason it took me a while to fully understand how to use the toy boxes.
(continues after the image)
Locomancer has an in-game tutorial, that started the second time I ran the game. It has virtual trails that help the player turn their attention to the right things. Pushing a button proved to be a challenge: I either pointed the laser that shoots out an in-game finger - when pulling a controller's trigger - to buttons, or tried to grab buttons as is done with most of its other interface elements; but one has to move the laser finger itself on buttons. I also had trouble placing trains on rails, was unable to reposition tables, and it took me a while until I figured out that the main box has a lid that can be opened.
I did try riding trains for a bit, but even if the track merely has some curves (and no upside down loops) I get nauseous really quickly. This surprised me, as I finished Serious Sam VR without any problems; but I guess it's because all movement in that first-person shooter was initiated by me. While Locomancer is a stable and polished VR experience, it's easy to get bored quickly since the game provides no challenges or tasks.
Oculus still does not support the Rift CV1 on Linux. Yesterday, June 3rd, version 1.15.0 of their SDK for Windows was released. What might be interesting is that its release notes mention support for the Vulkan API:
Oculus VR, LLC.This release introduces support for Vulkan. [...] The Oculus SDK now supports Vulkan for rendering.
OpenHMDJust merged #PSVR and #HTCVive support, Universal Shader and all other 0.3rc fixes to master, release this weekend! Help us test! #HMD #FOSS
While not quite ready, libsurvive certainly continues to make progress. CNLohr, its main developer, gave a status update May 11th in a YouTube video:
There have been no new releases of Vrui. Two programs were updated to work with the latest version 4.2-006, namely LiDAR Viewer (April 21st) and 3D Visualizer (March 22nd).
Late April, Yaakuro posted that his Unreal Engine code got "merged into EpicGames master and it will be available in 4.16". I'm not sure what to look for in the long 4.16 release notes. There's a GitHub issue though, that the Vive is not being detected. (You may need a free Epic Games account to try 4.16 yourself via the Epic Games GitHub page.)
Valve's Pierre-Loup A. Griffais (Plagman) changed the SteamVR-for-Linux README to say "Unity development is not currently supported.", but Unity in general does have VR support for Linux. Various games, including Munch VR and Locomancer, use it, and so does the SteamVR tutorial.
Having WebVR on Linux could be a big thing, especially since our platform does not currently have a player that can deliver side-by-side (SBS) dome projections. Linux is not yet listed at webvr.rocks, the last Chromium builds with WebVR that I can find are Windows only, and I tried Firefox Nightly recently but after following all instructions the "Hello WebVR!" example says: "WebVR supported, but no VRDisplays found." I asked Mozilla VR platform engineer Kearwood Gilbert (@kearwoodgilbert) on IRC and he replied:
Kearwood GilbertWe will be ramping up Linux support very soon! For Firefox 55, we wish to have a stable first release for Windows first. Firefox 56 is likely to see Linux support, if at least behind a pref. We are also big fans of Linux. Linux support will come first with OpenVR. Stay tuned and watch the Linux meta-bug. We wanted to get OpenVR's client library building with Firefox first, to make OpenVR turn-key. Now that we're there, we can do the same on Linux. That will be landing first. Following that would be the Direct rendering support for OpenGL. It is safe to say Linux support is expected to be behind a pref in the FF56 timeline. We hope to give more precise details soon.
According to the Mozilla calendar, Firefox 56 will be in beta starting August 8th. It'll be in Nightly before that. So, this is good news. If things work out, the arrival of WebVR for Linux is not that far away.