Eye Tracking Fixation Point

Unity Editor version: 2022.2.0b10
ML2 OS version:Build: B3E.220818.12-R.046-R.417
MLSDK version:29
Host OS: (Windows/MacOS) Windows

With ML1 I was able to tie a fixation point directly to the position of an object by assigning the value directly to the transform of an object and it followed my eyes well. With ML2 so far the FixationPoint is super low and very jumpy. I tested the confidence level and am receiving a confidence of 1... which I guess it means it's very sure that my eyes are looking at my feet? Is there a bug or is the FixationPoint no longer a world position as it was with ML1?

1 Like

Hi @dwilday, thank you for your post. Let me look into this and report back here asap.

1 Like

Hi, I checked with our engineers and we advise folks who are having issues with accuracy to go through the Custom Fit app again and make sure the device is fitting well.

Here's a couple resources you might find useful, please let me know if they help:
Here's an an eye tracking example that uses fixation point to set the position of a transform in the scene.

Also, here's an example that shows how to Initialize, access and dispose of eye tracking input data.

And this example snippet can be used to debug a green ray from the user's eyes to the fixation point.

1 Like

I ran through the Custom Fit app and calibrated my eyes multiple times and the examples listed are what I've based my code upon.

As for drawing the ray... I'm unsure how that example would even work with eye tracking. Please correct me if I'm wrong but Debug.DrawRay only works in Scene mode inside Unity (ie would not show up in the headset) and eye tracking only works within the Magic Leap headset.

1 Like

Hi @dwilday

The example script allows you to see the fixation gaze in the Unity Editor when testing your application using the Magic Leap App Simulator.

Similar to the Magic Leap 1, the Magic Leap 2's fixation point is provided in world space.

Regarding the poor eye tracking performance, are you using the headstrap when wearing the Magic Leap 2? Have you tried restarting your headset and re-running the custom fit app?

1 Like

Right, so the simulator would not help as this is an issue inside of the Magic Leap 2 headset and not the simulator. In lieu of that I've added a small sphere to the scene and set it's position to match the fixation point in my update function.

No, I'm not using the headstrap and have rebooted and re-calibrated multiple times.

1 Like

Sorry for the confusion. I was referring to Device mode when using App Simulator.

Can you try the eye tracking feature after attaching the head-strap and rerunning eye calibration?

1 Like

I see. Sorry I haven't used app simulator yet.

So the issue was, as you likely guessed, user error. In my haste is appears I was using the wrong XR Rig prefab. I did a search for XR Rig and didn't notice there were two. The one I was using was from com.unity.xr.legacyinputhelpers/Prefabs/XRRig.prefab. It was difficult to track down as it actually seems to function for base uses but fails spectacularly when used with eye tracking.

Thanks for taking the time to look into this.

2 Likes

Thank you for the heads up, we will look into this issue further and update our documentation for clarity

1 Like

If you feel it's necessary. Your documentation points to the correct file, this was simply my mistake.

1 Like