Eye Link - tracking both eyes

Hi Chris,

To some extend this is a follow up on an older situation that I didn’t get fully addressed. EyeLink has the possibility of tracking both eyes simultaneously. In MWorks I have a calibrator that works for each eye (for monocular situations). I would like to have the possibility of recoding the positions of both eyes, while primarily tracking one of them only. Do you see some impediment to this of have some suggestion of how to address it?

Thank you!

Hi Mariana,

No, I don’t anticipate any issues with this. You could also track both eyes, if you wanted. You just need to have separate calibrators, filters, and fixation points for each eye you want to track.


Hi Chris,

Thank you for the reply.

I have 2 calibrators, 2 filters, but I am not sure what should be specified
in the fixation points to specify the eye it should be associated with.
Would this be set by having different ‘trigger_flag’? I’ve changed it to
include 2 different 'trigger_flag’s (I might only get to test it Monday.)


Hi Chris,

I’m sure I’m doing something silly. Not yet working…

This is how I have the calibrators and filters:

    <calibrator tag="eyeCalibrator_Right" type="linear_eye_calibrator"

eyeh_raw=“eye_rh_raw” eyev_raw=“eye_rv_raw” eyeh_calibrated=
“eye_h_calibrated” eyev_calibrated=“eye_v_calibrated”>

    <calibrator tag="eyeCalibrator_Left" type="linear_eye_calibrator"

eyeh_raw=“eye_lh_raw” eyev_raw=“eye_lv_raw” eyeh_calibrated=
“eye_h_calibrated” eyev_calibrated=“eye_v_calibrated”>


<filters tag="Filters">

    <filter type="boxcar_filter_1D" in1="eye_v_calibrated" out1="eye_v"

width_samples=“5” tag=“eye_v_filter”>

    <filter type="boxcar_filter_1D" in1="eye_h_calibrated" out1="eye_h"

width_samples=“5” tag=“eye_h_filter”>

    <filter type="basic_eye_monitor" eyeh_calibrated="eye_h"

eyev_calibrated=“eye_v” eye_state=“saccade” width_samples=“5”
saccade_entry_speed=“100” saccade_exit_speed=“65” tag=“saccade detector”


Thank you,

Hi Mariana,

You’re probably running in to trouble here:

eyeh_calibrated="eye_h_calibrated" eyev_calibrated="eye_v_calibrated"

Both calibrators write their output to the same two variables (eye_h_calibrated and eye_v_calibrated), so the positions for both eyes are ending up in the same place. That said, this might work if the EyeLink is tracking only one eye at a time (i.e. you’ve manually selected either the left or right eye, both not both, on the EyeLink PC). Is that what you’re doing?

What I meant by “separate calibrators, filters, and fixation points for each eye” is a full, independent set of variables and components for each eye, e.g.

linear_eye_calibrator right_eye_calibrator (
    eyeh_raw = right_eye_h_raw
    eyev_raw = right_eye_v_raw
    eyeh_calibrated = right_eye_h_calibrated
    eyev_calibrated = right_eye_v_calibrated

boxcar_filter_1d (
    in1 = right_eye_h_calibrated
    out1 = right_eye_h
    width_samples = 5

boxcar_filter_1d (
    in1 = right_eye_v_calibrated
    out1 = right_eye_v
    width_samples = 5

circular_fixation_point right_eye_fixation_point (
    trigger_width = fixation_width
    trigger_watch_x = right_eye_h
    trigger_watch_y = right_eye_v
    trigger_flag = right_eye_in_window
    color = 1,0,0
    x_size = fixation_point_size
    x_position = fixation_pos_x
    y_position = fixation_pos_y

basic_eye_monitor (
    eyeh_calibrated = right_eye_h
    eyev_calibrated = right_eye_v
    eye_state = right_eye_saccade
    width_samples = 5
    saccade_entry_speed = 60
    saccade_exit_speed = 20

and then equivalents for the left eye. This is what you would need to track both eye simultaneously, but maybe that isn’t your intent.


Hi Chris,

Thank you very much! I’ll do that!


Thank you very much, Chris. I had not separated it well enough at all the
right/left eye signals. It is working now, thank you!

Great! Thanks for letting me know.