Skip to content

On Quest 3 browser the controllers are not detected and Teleop falls back to headset pose #14

@nahakiole

Description

@nahakiole

On a Meta Quest 3 using the built-in browser, opening the Teleop page starts an immersive session but the app never detects VR controllers. It falls back to device pose as if on a phone.

Environment

  • Device: Meta Quest 3
  • Browser: Meta Quest Browser (built-in)
  • Input mode: Touch controllers active, hand tracking off
  • Teleop: current main

What I expect

  • Controllers appear in session.inputSources
  • UI shows “VR controllers detected”

What happens

  • inputSourceschange fires, but no source matches handedness: 'right' and targetRayMode: 'tracked-pointer'
  • The device is treated as a phone and Teleop uses HMD pose

Code that fails to detect:

function detectDeviceType(session) {
  const inputSources = session.inputSources;
  for (let inputSource of inputSources) {
    if (inputSource.handedness === 'right' && inputSource.targetRayMode === 'tracked-pointer') {
      return true;
    }
  }
  return false;
}

session.addEventListener('inputsourceschange', () => {
  isVRDevice = detectDeviceType(session);
  setMessage(isVRDevice ? 'VR controllers detected' : 'Using device pose');
});

Does Teleop controller detection work for anyone on Quest 3 with the Meta browser?

Is there a recommended or tested browser on Quest 3 that works better with Teleop? For example, Wolvic or another WebXR-capable browser?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions