android / android/android-xr-unity-package

Individual Eye Tracking using Unity OpenXR Plugin

Open
#15 10 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.