Recommended setup for XR development

Hi, I just signed up and I’m really excited about this tool.

What is the recommended setup for XR development. I know browsers and hardware are maturing, what is the most stable setup for development?

I have an Oculus Rift S (on beta channel), Chrome (latest), Firefox (latest), Win 10, and SteamVR (latest)

If I:

make a new project
select VR Starter Kit
wait for it to load
click play

I don’t get into immersive VR. Sometimes it doesn’t leave the oculus gray zone. Sometimes it opens the scene, but freezes on the first frame with an hourglass animation.

I can get the playcanvas.github.io examples to work with alot of rebooting, but keep getting stuck with “VR NOT FOUND” on this testing page.

Any suggestions?

What works best for yall? Thank you!

We generally use Oculus Quest headsets.

For desktop, I’ve not tried this myself. Can you check your setup with the following page please? WebXR - Samples

Hi, thanks for the reply. When I use my Rift, I get into a state where that page says “VR support not detected”.

If I kill all chrome processes, restart Oculus, and try the page again, it says “VR support detected”

The VR support is never usable in the PlayCanvas editor, and I think there are some problems in the player. (I just started , I’m not totally sure what to expect, I was able to get the github examples to work a bit, but it was on/off and buggy.)

Anyways, thanks for the tip. I’ll try a Quest.

OK, that page is not PlayCanvas driven and is effectively a hello world for WebXR. For it not to show VR consistently means there is more likely to be a potential issue with the setup you have with your PC or the software (browser, SteamVR etc)

It does sound like it’s an ongoing issue about it all working correctly looking at other tickets with other frameworks and similar issues https://github.com/aframevr/aframe/issues/4709

This part is concerning. I will bring it up with the team and/or create a ticket to investigate

I need the truth of what works so I can set expectations with my customers. I agree it seems like a platform issue out of our control.

Thanks for the help!

It is now PlayCanvas that is crashing.

[playcanvas.dbg.js?version=1.49.2:42271]: Uncaught TypeError: Cannot read properties of null (reading ‘removeEventListener’)

TypeError: Cannot read properties of null (reading ‘removeEventListener’)
at XrInput._onSessionEnd (https://launch.playcanvas.com/editor/scene/js/engine/playcanvas.dbg.js?version=1.49.2:42271:18)
at XrManager.fire (https://launch.playcanvas.com/editor/scene/js/engine/playcanvas.dbg.js?version=1.49.2:796:18)
at XRSession.onEnd (https://launch.playcanvas.com/editor/scene/js/engine/playcanvas.dbg.js?version=1.49.2:43363:25)

The browser tab is updating based on the HMD rotation, but the hourglass spins in VR until it crashes.

Sometimes it hangs. Sometimes it says “this tab(?) is unresponsive”

I am getting the above JS error from: https://launch.playcanvas.com/1269324?debug=true

This is the “hello world” from Chrome.

This demo works: Immersive VR Session

PlayCanvas does not: https://launch.playcanvas.com/1269324?debug=true

I’ve debugged this for some time and PlayCanvas is definitely broken.

When I run the VR Template project:

  • Sometimes PlayCanvas updates the browser tab based on the HMD rotation
  • Sometimes the tab is completely black
  • Inside the HMD the scene is frozen on the first frame and hangs on an hour-glass.

It’s bumming me out.

Unfortunately the link you have posted is a private project so I cannot investigate the project.

I did a check of the VR starter kit and other VR tutorial projects on the Quest and they worked fine.

Looks like we need to get a PC HMD on the PlayCanvas team

I’ve created an internal ticket to investigate a Windows VR setup starting with in a connected mode of some sort. If that fails, I will get hold of a Windows HMD such as the mixed reality headsets.

Unfortunately, with my current workload, I won’t be able to start looking at this till next week.

Sorry, haven’t had a chance to look into this yet. I’m still aware that it is an issue and hope to get on top of it soon

I’ve tried this with the following setup:

Oculus Quest 1
Connected to Windows 10 with Oculus software using Air link
Using the Oculus OpenXR runtime
Chrome and this project: https://playcanvas.com/project/706679/overview/webxr-controllerhand-models

There is an issue where WebXR experiences don’t launch properly from iframes so you have to use the iframe-less publish link instead or the launch tab: https://playcanv.as/e/p/g7uSJhuo/ (note the /e before the /p)

WebXR in the browser on Chrome seems to stop working after exiting first experience and crashes the browser when trying a second one. This happens both on https://immersive-web.github.io/webxr-samples/immersive-vr-session.html and on PlayCanvas

Actually, I can’t get working again with PlayCanvas so something is potentially going wrong on our side.

@moka Is this something you can look into? I will try to get a video of the issue next week and add to the engine repo

I’ve looked into this a bit more and it looks like WebXR immersive VR on desktop with Air Link only works if you only have one WebGL WebXR tab open in Chrome.

If there is more than one, it will crash trying to get into VR on the connected Rift.

If the user quits the any WebXR experience (including those on Immersive VR Session) via the sub menu on the Rift rather than a quit button on the desktop browser, the browser will then be unable to launch a new experience and will crash.

This also means that if you are using the PlayCanvas Editor, you have to close that down before opening a new tab for the launch tab which is not a great experience.

I will write up a ticket for the last issue after doing a bit more experimenting and see if there is anything we can do to improve this.

The whole thing just works a lot better on the Quest Standalone at the moment by the looks of things

Created bug report here: https://github.com/playcanvas/engine/issues/3733