playcanvas / playcanvas/engine
Controllers not appearing in WebXR session via streamed PCVR (Virtual Desktop)
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 16.8k
- Forks
- 2k
- Avg merge
- 4h 32m
- Merged PRs (30d)
- 222
Description
PlayCanvas XR input events not firing despite working native WebXR
Environment
- Chrome 143.0.7499.170 (64-bit)
- Meta Quest 3 connected to PCVR via Virtual Desktop 1.34.14
- Repro: WebXR Tracked Controllers tutorial
Steps to reproduce
- Connect Quest 3 to PC using Virtual Desktop
- Open the tutorial project in Chrome
- Enter XR session — headset tracking works, VR renders correctly
- Controllers do not appear in the scene
Expected: Controllers visible and tracked in VR
Actual: VR session starts correctly but controllers never appear
Additional context
Works in: Quest 3 native browser (controllers appear correctly)
Broken in: Chrome on PC via Virtual Desktop
Investigation
app.xr.input.on('add', fn)callback never fires- Controller position via native WebXR API does work
- Console shows polyfill errors (unknown if related):
Uncaught TypeError: Cannot set properties of undefined (setting 'WebXRPolyfill')
Uncaught ReferenceError: WebXRPolyfill is not defined
- [Source of failing polyfill patch](https://launch.playcanvas.com/api/assets/files/scripts/webxr-polyfill/webxr-polyfill-patch.js?id=35049907&branchId=fea7377c-8461-49a9-9673-fa8b511cea3d)
Not yet tested
- Quest Link (wired/Air Link)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the WebXR Tracked Controllers tutorial with Quest 3 streaming through Virtual Desktop, then inspect the reported WebXR polyfill errors and webxr-polyfill-patch.js. Compare the missing app.xr.input.on('add', fn) event with the working native WebXR controller position. Done means controllers appear and are tracked in the streamed PCVR session without the reported failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- ar-vr-xr
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100