Eye tracking

Note: you are currently viewing documentation for a beta or an older version of Varjo


You can get following eye tracking data from Varjo API:

  • _leftEye _[varjo_ray]
  • _rightEye _[varjo_ray]
  • _gaze _[varjo_ray]
  • focusDistance
  • stability
  • captureTime
  • leftStatus
  • rightStatus
  • status
  • frameNumber
  • leftPupilSize
  • rightPupilSize


varjo_ray contains information about eye position coordinates origin (x, y, z) and the direction of vector forward (x, y, z). varjo_ray info is recorded for left eye (leftEye), right eye_(rightEye),_ and combined value (gaze). Information about gaze is presented in the left-hand coordinate system and is relative to the head pose.

focusDistance is the distance between the eye and the focus point. It is a value between 0 and 2 meters.

stability is a value between 0.0 and 1.0 specifying the stability of the user’s focus. 0.0 means not stable and 1.0 means stable.

captureTime is the timestamp of when the data was recorded in nanoseconds.

leftStatus and rightStatus is a value for each eye where:

  • 0 – eye is not tracked and not visible (e.g. eye is shut)
  • 1 – eye is visible but not reliably tracked (e.g. saccade or blink)
  • 2 – eye is tracked but quality compromised (e.g. headset has moved after calibration)
  • 3 – eye is tracked

status is a value representing the status of eye tracking in the Varjo headsets, where:

  • 0 – data is not available, user is not wearing the device or eyes cannot be found
  • 1 – user is wearing the device, but gaze tracking is being calibrated
  • 2 – data is valid

frameNumber is a unique identifier of the frame when the data was recorded.

leftPupilSize and rightPupilSize are the values for the size of the pupil between 0 and 1 calculated according to the pupil size range detected by the Varjo headset.

Fast calibration

Two optional parameters are passed for tracking. If you dont pass any paramenters, defaultt calibrattion would be triggered. The first parameter, “GazeCalibrationType” can be either “Legacy” or “Fast”. Legacy is the calibration that is currently used by default and has a long calibration time. Fast calibration is a new 5-point calibration which requires much less user time to complete. However, it is currently in the Beta state and its validation is ongoing. Therefore proven results rely on Legacy calibration. The second parameter passed is “OutputFilterType”. It defines whether you want to receive smoothed tracking data which looks better and has less flickering, or raw data. For raw data, pass key “None”. For processed data, pass “Standard”.

In order to request specific data, call RequestGazeCalibrationWithParameters and pass GazeCalibrationParameters as a parameter.