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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions