Can't run WebXR through Quest link

Hello everyone!

I am doing XR experiments, and I had success running the WebXR samples from Immersive VR Session through the quest link on both a Quest 2 and Quest Pro.

However when running the BabylonJS WebXR demo Babylon.js Playground I am stuck with a spinning hour glass icon and a fixed image of the sphere. This happens on both the Quest 2 and Quest Pro when using Quest Link. This does not happen when using the quest web browser though.

In the browser’s console, I only get the following warning:

BJS - [16:51:46]: Feature xr-hand-tracking failed to attach

Let me know if anyone can reproduce the issue! Also I am running Windows 10.

cc @RaananW our overlord for XR stuff :slight_smile:

1 Like

I wrote a long answer about how to enable WebXR on the oculus link, but if I understand correctly, the first frame does render. Right?

Is there any error int he console? something we can work with to debug this together?

1 Like

Yes I can see the first frame in the occulus, and a spinning hour glass in front of it that never goes away. For the console, I edited my first message with the log.

The page does not respond as the first frame is a quad that does not take the entirety of the virtual space

Does the console show something? is the render loop running?

I only have the hand tracking warning I mentionned, as for the render loop I will need to test it some more and then get black to you

1 Like

I wonder if hand tracking is somehow related to this. It should not create any issue, but - can you try disabling hand support? add disableHandTracking: true to your default webxr configuration

Okay I tried again this morning and the issue is different from what I thought, here is what I found:

  • When starting chrome and opening an XR playground, everything works perfectly
  • Then I exit the immersive VR session (with the html button) and open a different XR playground
  • Loading the new immersive VR hangs indefinitely like I described earlier
  • However, trying to load a WebXR sample like this one Immersive VR Session does work
  • Restarting chrome make XR allow me to repeat this process from step 1

So it looks like something strange happens when exiting the babylonjs XR session that prevents opening a new one :thinking:

I tried all demos from WebXR samples without having to restart chrome once and it worked flawlessly.

The issue arises when starting a second Babylon XR session, or with this standalone demo apparently WebXR Spacetime Gaussian Splat Viewer

I made some logs of the issue with this playground:

Complete log:

BJS - [10:07:00]: Babylon.js v7.10.0 - WebGL2 - Parallel shader compilation
onStateChangedObservable 0
BJS - [10:07:02]: Feature xr-hand-tracking failed to attach
onInitialXRPoseSetObservable
onStateChangedObservable 2
rendering x2

Disabling the hand tracking did not change anything beside removing the warning in the console

Do you mean reloading the page, or restarting chrome?

I can’t debug this at the moment as I have to prepare a device that is capable of running oculus link.

Logs seem to be in order - state changes twice - entering and entered, xr pose is set correctly as well. I wonder what prevents it from rendering. Feels like something is not being cleared.

I’m assigning this to me, and with apologies will have to say that it might take a little until I debug this fully.

I meant restarting the entire browser yes, it resets webxr I believe. Thanks for looking into it!

If I find anything else, I will let you know :slight_smile:

1 Like