Bug Report: Dragging Issue with Babylon v6.x.x on Quest 2 and Quest Pro

I have encountered a bug in Babylon.js version 6.x.x that affects the drag functionality when using both the Oculus Quest 2 and Quest Pro. This issue is not present in Babylon v5.x.x.

After thorough debugging and code inspection, I have identified the issue with the sequence of touch events in Babylon v6.x.x. Here is the detailed sequence that leads to the problem:

Babylon v6.x.x:

  1. Pointer Move (Randomly moving pointer on the canvas):
  • _activeTouchIds = [2, -1]
  1. Pointer Down (Press controller and start to drag):
  • _activeTouchIds = [2, 2]
  1. Pointer Move (Dragging):
  • _activeTouchIds = [2, 2]
  1. Pointer Up (Release controller and stop dragging):
  • _activeTouchIds = [-1, 2]
  1. Pointer Move:
  • _activeTouchIds = [3, 2]

This sequence reveals an unexpected behavior in Babylon v6.x.x, where the touch IDs increase unexpectedly during the drag operation, leading to a failure in subsequent attempts.

Babylon v5.x.x:

  1. Pointer Move (Randomly moving pointer on the canvas):
  • _activeTouchIds = [-1, -1]
  1. Pointer Down (Press controller and start to drag):
  • _activeTouchIds = [2, -1]
  1. Pointer Move (Dragging):
  • _activeTouchIds = [2, -1]
  1. Pointer Up (Release controller and stop dragging):
  • _activeTouchIds = [-1, -1]
  1. Pointer Move:
  • _activeTouchIds = [-1, -1]

In Babylon v5.x.x, the sequence remains stable, and the touch IDs do not exhibit unexpected increases, ensuring consistent drag functionality.

Steps to Reproduce:

  1. Use Babylon.js version 6.x.x.
  2. Open meta quest browser on Oculus Quest 2 or Quest Pro and run any Babylon app.
  3. Randomly move the pointer on the canvas.
  4. Press the controller to start dragging.
  5. Drag and release the controller to stop dragging.
  6. Notice that dragging fails after the first attempt due to the unexpected increase in touch IDs.

Expected Behavior: Drag operation should work consistently without issues on Babylon v6.x.x, similar to the behavior observed in v5.x.x.

Additional Information:

  • Babylon.js version: 6.x.x
  • Oculus devices: Quest 2, Quest Pro

Hello! I’ll tag @PolygonalSun and @RaananW to have a look at it but please keep in mind that we’re on holidays season so answers will be slower :slight_smile:

2 Likes

@andyyjchen I do have a small question :slight_smile:

Do I understand correctly that this is not directly XR related, but the oculus browser behavior before entering XR?

@PolygonalSun - I am back, will be happy to go over this with you and see what could have caused this issue.

Yes that’s the behavior before entering XR. It is just a drag behavior to let the camera rotate and see different direction of the scene.

1 Like

i tried reproducing it, but couldn’t. I tried with both the quest pro and th quest 3. The camera rotates correctly, with both pointers. Is it not working in a specific playground? From the steps I saw it seems to be failing for you on any scene. Is the playground not working as well?

I discovered that the dragging issue I was experiencing occurred in Oculus browser version 30.3.0.14.55.546199240. However, after updating to the latest version, 31.1.0.14.26.554554223, the issue seems to be resolved.
Somehow, updating the software fixed the problem :melting_face:. Anyway thanks for your help with it.

1 Like