Before entering XR, hold the right arm forward with the palm facing down.
Keep the left hand behind the back so it is not initially tracked.
Enter XR.
Observe the avatarâs right hand.
Then bring the left hand into view in the same pose as the right hand.
Observed result:
The avatarâs right palm is initialized with the wrong orientation. In our case it faces left instead of down.
When the left hand starts tracking later and is brought into the same pose, the avatarâs left hand is oriented correctly.
Expected result:
Both hands should produce the same avatar orientation for the same real-world pose, regardless of whether the hand was already visible at XR entry or started tracking later.
What workarounds we already tried without success:
Delaying avatar setup or changing setup order around XR/session entry
Waiting for both hands before attaching the avatar / body tracking
Rebinding or rearming tracking after hand visibility changes
Wrist-specific orientation / aim corrections
Forearm-roll / chain-level correction attempts
Session-local per-side roll offset calibration ideas
Per-side delayed arm activation based on hand-tracking stability
If you could take a look when convenient, we would appreciate it. If this is ultimately a Meta Quest tracking/runtime issue rather than Babylon.js retargeting, guidance on that would also help so we can report it to Meta with the right framing.
Thanks for the quick reply. I tested the fix and it seemed better now, but I noticed that the avatarâs hand goes upside down (a 180-degree roll offset) if I keep my palm up when I enter XR. The same thing happens if the left palm points left at the start or the right palm points right.
Just bumping this thread. Regarding the second issue, I wanted to make sure it didnât get missed since I havenât heard back yet. Thanks for looking into it!
No errors in the console. Except the unrelated GL_INVALID_OPERATION?
logger.ts:107 BJS - [09:04:38]: Babylon.js v9.10.1 - WebGL2
index.js:52 Loading rigged characterâŚ
index.js:52 WebXR body tracking enabled.
Model: HVGirl.glb (Mixamo rig)
Put on a headset that supports âbody-trackingâ
(e.g. Meta Quest 3), and press âEnter VRâ.
The avatar will mirror your body pose.
monaco-DbnHoJcc.js:1030 [Violation] ârequestIdleCallbackâ handler took 62ms
babylon.js?t=1780560326366:1 [Violation] ârequestAnimationFrameâ handler took 242ms
/?snapshot=refs/pull/18530/merge#0FOISU#2:1 [.WebGL-0x7400767e00]GL ERROR :GL_INVALID_OPERATION : glFramebufferTexture2DMultisample: â error from previous GL command
index.js:52 Body tracking started.
index.js:52 Body tracking ended.