Jump to content

Questions I have again after using eye tracking for few months

Recommended Posts



I have some questions about eye tracking , if you want you can try to help me to find  answers or confirm what I done :


1-About « SRanipal_Eye_v2.Focus » method , I saw it uses sphere cast but like I want to use it to find object in an Attention area, I need to get a sphere with different radius size according to the distance which there is between my eye and my combined eye, and not a fixed size ? It exists a mean to send raycast with this mecanisms ?

Currently I use just rayCast and draw a sphere according to distance between my combined eye and the impact of raycast, and fixing an angle to find radius of attention area.


2-About IPD , currently I found how get this value , making difference between the postion of my two eyes, but I though also IPD was linked with virtual camera in Unity, but currently It’s not the case because when I try to get a similar IPD with my two screens in the headset, virtual camera doesn’t move in Unity ? Is it normal or it’s possible also to modify distance betweens virtual cameras ?


3-About CallBack eye data enabled, CallBack function can be called 120 times per second, compare to Update where it’s just each frame it’s called, is it correct ?


4-In my different test « convergence_distance_mm « attribute continue to doesn‘t work because combined.convergence_distance_validity is always false, is it normal ?



5-I saw few months "timestamp" attribute didn't work correctly and it was better to use frameCount, now "timestamp" works well  ?


6-When I display a line renderer to show trajectory of my combined eye, I see that the result is often wrong because start position change very often ? Do you get the same issue ?

I have the issue with « localPosition » in SRanipal_Eye_v2.GetGazeRay(GazeIndex.COMBINE, out  localPosition , ….)

So now just I take the middle of both pupils positions to get a result very stable, is it a good alternative ?



7-Is it possible to get an image of our eyes with this eye tracking, or it’s necessary to ask licence or another thing to use for search ?


8-Do you know how to use parameter.gaze_ray_parameter.sensitive_factor, because it’s seems to be an interesting parameter before to do calibration but I am not sure I use it correctly ?

Currently I use it each time before to do a calibration :

EyeParameter parameter = new EyeParameter


gaze_ray_parameter = new GazeRayParameter(),


Error error = SRanipal_Eye_API.GetEyeParameter(ref parameter);

Debug.Log("GetEyeParameter: " + error + "\n" +

"sensitive_factor: " + parameter.gaze_ray_parameter.sensitive_factor);

parameter.gaze_ray_parameter.sensitive_factor = parameter.gaze_ray_parameter.sensitive_factor == 1 ? 0.015f : 1;


9-Eye tracking use Right coordinate system but unity Left, so is it good to do :

leftCoordLocalPosition = new Vector3(-1 * rightCoordLocalPostion.x, rightCoordLocalPostion.y, rightCoordLocalPostion.z);

Without this methods, my left eye is to the right and my right eye is to the left in my global position in the Unity 3D scene.


10-With eye tracking we can get pupil position but not eye center position, so is it possible to do :

centerEye= pupilPosition- eyeDirection*0.0125f because in average the diameter of an eye is 0.025 cm, so the radius is 0.025/2.


Link to comment
Share on other sites

  • 5 weeks later...


I'll try and respond to each of these questions but let me know if you need further clarification on anything.

1.  I don't fully understand this question. Would you like clarification on the "Focus" api functionality? Or are you looking for suggestions of an alternative solution? Please explain a little more or include a diagram.

2. IPD of virtual cameras is generally handled automatically by the game engine and plugins used. Are you using the legacy SteamVR plugin, the Unity XR Steam plugin, or the built in Unity SteamVR support on older Unity versions? It is not normal to modify the distance of the virtual camera IPD but was previously possible depending on the plugin/engine/rendering method.

3. The Unity Update loop is called for each rendered frame which is usually ~90Hz when running with Vive Pro Eye (unless performance issues are causing frames to drop). The callback method allows for multi-threaded data access at the fastest rate possible for the eye tracking device which is on average ~120Hz.  

4. convergence_distance_mm is not implemented and will not report valid results. I believe this feature is available in the Tobii XR SDK which does work with the VIVE Eye Tracking SDK (SRanipal).

5. There was a bug fixed related to timestamps in the latest release. Please test and confirm if it is fixed for you.

6. Are you able to reproduce this issue in the sample scene with the mirror & gaze ray? Can you take a screenshot or video?

7. There is no access to the raw camera eye images. Some developers have explored this option with Tobii directly.

Filtering is added to prevent gaze tremble (ex. when looking at distant objects). Use SetEyeParameter to set the filtering level with "sensitive_factor". You can adjust the variable to effect the cutoff slope in the filter.

1 is raw gaze vector without adding a filter post-processing for gaze tremble.

0 is post processed with strongest filter to remove gaze tremble.`

The default value is 0.007 and you can multiply or divide the variable by 10 until you notice the effect on the gaze data.

Note: SetEyeParameter filtering only works on gaze rays.

void SetFiltering(double filteringLevel) 
    EyeParameter parameter = new EyeParameter
        gaze_ray_parameter = new GazeRayParameter(),

    parameter.gaze_ray_parameter.sensitive_factor = filteringLevel;
    Error error = SRanipal_Eye_API.SetEyeParameter(parameter);

9. This looks related to a bug reported previously. 

10. You can use the "Combined Gaze Origin" to get the center point between the eyes. See the EyeData.png diagram in the documentation included with the SDK download.

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...