Igalia / wolvic

A fast and secure browser for standalone virtual-reality and augmented-reality headsets.
https://wolvic.org
Mozilla Public License 2.0
790 stars 99 forks source link

Standalone VR Browser for Linux OS #10

Open fire opened 2 years ago

fire commented 2 years ago

Is your feature request related to a problem? Please describe.

There is no WebXR alternatives for Linux and especially none for standard Linux OS based headsets. This means no Linux (Android is a different platform) based headsets can run XR browsers.

Describe the solution you'd like Is a standard VR browser for PopOS linux out of scope?

Would like to test wolvic on my Popos Linux for debugging purposes at least.

Describe alternatives you've considered There is no WebXR alternative for Linux.

Additional context Valve Software says paraphrased although the Steam Deck can run the Valve Index it is not supported. However, that means they confirmed it is possible to run as a standalone OpenXR device.

KooIaIa commented 2 years ago

It does say the goal is to be "exclusively for standalone AR and VR headsets" but it doesn't say Android. There are rumors of major companies working on standalone Linux XR headsets. Also a kickstarter for one I believe.

If people get VR working on the Steam Deck next month that does seem like a good starting point. But isn't the bigger issue that OpenXR itself is a mess on Linux and no Linux distros officially support OpenXR out of the box? So in order to target Linux today its a mess of many companies constantly changing non-standard OpenXR solutions? If a new standalone Linux system implements OpenXR and it 'just works' it seems like that's the biggest hurdle.

technobaboo commented 2 years ago

There actually is a web engine that fully supports OpenXR and WebXR for Linux, it's a patch to WebKit that works but isn't implemented into any browsers yet:

https://blogs.igalia.com/ifernandez/2021/01/webxr-webkit/

wait a moment this is from the same people lol, but wolvic is so java-based and seems to be highly integrated into Android so idk if this particular one would work on Linux :(

now it is possible to make a stereokit-based browser based on webkit that'd work on much more platforms.... hmmmm

technobaboo commented 2 years ago

@KooIaIa openxr isn't that big a mess on Linux, it's certainly better than on Android. Monado isn't the easiest to get working, but when it's installed it's reliable and openxr apps connecting to it work basically 100% of the time. And yea, no distros support OpenXR out of the box because it's just not common right now, but when browsers and apps use it it will start to change. I've already ported StereoKit to Linux, and that means TONS of openxr first apps now work cross-platform, including on Linux.

Assuming you preinstall Monado and it supports the standalone hardware (which I know for a fact Simula is doing) then running a WebXR browser is indeed as plug and play as ideal. Then again, Simula's VR window manager is likely to act as an OpenXR overlay projection layer so 1 app at a time underneath is not ideal, but that's something Stardust fixes.

guysoft commented 2 years ago

Hey, I also have an original Vive working on linux, that works pretty well. I can also run stuff using Proton emulation layer. Sadly no browser that I know of has linux builds. I could try and make a linux build it I have a direction how to build this. I can run gradlew but I assume that would make an APK in the end. WebXR IMHO would be the way to go.

ckorn commented 2 years ago

Can I even get wolvic to work on Valve Index with Windows?

rpavlik commented 1 year ago

Debian Bullseye contains a release of Monado that is a conformant OpenXR 1.0 runtime (when used in simulated mode) at release (and so does recent Ubuntu releases, and Monado has CI built packages), it's definitely not a mess on Linux, and at least for simulator mode that's about as "out of the box" as it gets. SteamVR has some bugs on Linux, but they aren't the only game in town. (They actually never submitted OpenXR conformance on Linux unlike Monado)

From briefly reviewing the code, it's hard for me to see how much of the WebXR and OpenXR-related plumbing stuff is closely coupled to the Java stuff vs the cross platform Firefox/Mozilla stuff. Would love to know whether something using some of this code is the easiest way to a WebXR capable linux browser, or if separate gecko dev would be, or chromium...