android / android/android-xr-unity-package
Individual Eye Tracking using Unity OpenXR Plugin
- Dominant language
- C#
- Stars
- 94
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
We have a customer that is unable to get individual eye tracking data using XR_ANDROID_eye_tracking xrGetFineTrackingEyesInfoANDROID through the Unity Open XR plugin on a Samsung Galaxy XR device.
In specific we are looking for API support to get:
1. Individual eye position (instead of combined)
2. Eye openness / blink detection
3. Relative timestamp for each eye-tracking reading
Qualcomm has stated that individual eye tracking is supported, but the Open XR library does not seem to allow it. Additional details from Qualcomm:
Data Availability
• Gaze Direction: Supported via Tobii’s eye tracking algorithm.
• Confidence Level / Validity Flag: Available through Tobii API.
• Eye Openness / Blink Indicator: Supported.
• Pupil Dilation: Internally tracked but not currently exposed. This would require a new API extension. Please let us know if you’d prefer this via Unity or OpenXR.
• Relative Timestamp: Provided for each eye-tracking data sample.
• Headset Position Feedback: Accessible globally or per eye through OpenXR APIs.
Technical Notes
• For fine-grained eye pose info, the XR_ANDROID_eye_tracking extension provides xrGetFineTrackingEyesInfoANDROID at the OpenXR layer.
• Display refresh rates can be adjusted using XR_FB_display_refresh_rate.
• Eye tracking performance depends on camera frame rates and synchronization:
o Camera Modes:
• Quarter resolution: 200×200 @ 60fps or 90fps
• Full resolution: 400×400 @ 60fps or 90fps
o Synchronization:
• Hardware sync tolerance: <1µsec
• Software sync tolerance: <10µsec
• For optimal results and smooth gaze-driven interactions, camera frame rates near 90Hz, synchronized with display refresh cycles, are strongly recommended. Lower rates (e.g., 60Hz) can introduce latency and affect user experience.
Contributor guide
Research direction
Start by examining the XR_ANDROID_eye_tracking entry point and xrGetFineTrackingEyesInfoANDROID in the Unity OpenXR plugin. Determine whether individual eye poses, openness or blink status, and per-sample relative timestamps are exposed; done means the requested data can be accessed through the plugin on the Samsung Galaxy XR.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, csharp, unity
- Domain
- game-dev, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100