The eye-tracker settings controls how the eye-tracker operates. For example it defines which features to detect or measure, which the camera frame rate to use, how to present targets in a calibration, what gaze analysis parameters to use and so on.

These settings can be written to a settings file .eyevec-settingsrc (in your home directory) using the eyevec-control application. This makes the eye-tracker settings persistent across eye-tracking sessions. You can edit the settings file using any plain text editor.

Details

The names of all settings are in lowercase with dashes between the parts that make up the name. In the settings file however the dashes are removed. For instance the setting named calibration-type is called calibrationtype in the settings file.

Name Valid range / options Default Description

detect-face-blob

0: false
1: true

1

If set, estimate horizontal face position from thumbnail

analyze-thumbnail

0: false
1: true

1

If set, analyze the thumbnail image to estimate a coarse location of the eyes

This makes the eye detection more robust in eye-loss situations. This analysis will not be performed if marker detection is enabled or if the image height is small (as is the case with frame rate above 500Hz).

detect-marker

0: false
1: true

0

If set, detect EyeVec marker on forehead

detect-iris

0: false
1: true

0

If set, detect iris edge (limbus) of each detectable eye

calibration-type

1: custom 1
2: custom 2
3: 1-point
4: 2-point horizontal
5: 2-point vertical
6: 2-point slope up (/)
7: 2-point slope down (\)
8: 3-point horizontal
9: 3-point vertical
10: 3-point slope up (/)
11: 3-point slope down (\)
12: 3-point triangle up
13: 3-point triangle down
14: 4-point square
15: 4-point diamond
16: 5-point square
17: 5-point diamond
18: 6-point horizontal
19: 6-point vertical
20: 7-point horizontal
21: 7-point vertical
22: 8-point
23: 9-point
24: 13-point
25: 17-point
26: 25-point

23

Calibration type/pattern

default-polynomials-x

0x0001: 1st order x, 2 coefficients
0x0002: 2nd order x, 3 coefficients
0x0004: 1st order x, 1st order y, 3 coefficients
0x0008: 2nd order x, 1st order y, 4 coefficients
0x0010: 2nd order x, 2nd order y, 5 coefficients
0x0020: 1st order x, with xy, 3 coefficients
0x0040: 2nd order x, with xy, 4 coefficients
0x0080: 1st order x, 1st order y, with xy, 4 coefficients
0x0100: 2nd order x, 1st order y, with xy, 5 coefficients
0x0200: 2nd order x, 2nd order y, with xy, 6 coefficients

0x03A1

Bitmask controlling which post calibration eye-vector to gaze position mapping function (polynomial) to be used, x direction

The number of points in the calibration determines the maximum number of coefficients that can make up the polynomial.

default-polynomials-y

0x0001: 1st order y, 2 coefficients
0x0002: 2nd order y, 3 coefficients
0x0004: 1st order y, 1st order x, 3 coefficients
0x0008: 2nd order y, 1st order x, 4 coefficients
0x0010: 2nd order y, 2nd order x, 5 coefficients
0x0020: 1st order y, with xy, 3 coefficients
0x0040: 2nd order y, with xy, 4 coefficients
0x0080: 1st order y, 1st order x, with xy, 4 coefficients
0x0100: 2nd order y, 1st order x, with xy, 5 coefficients
0x0200: 2nd order y, 2nd order x, with xy, 6 coefficients

0x03A1

Bitmask controlling which post calibration eye-vector to gaze position mapping function (polynomial) to be used, y direction

The number of points in the calibration determines the maximum number of coefficients that can make up the polynomial.

synthesize-points

0: false
1: true

0

If set, for calibration patterns with less than 9 points add synthetic eye data to get 9 data points

This assumes that the eye to gaze mapping is roughly linear and symmetric.

validation-type

1: custom 1
2: custom 2
3: 1-point
4: 2-point horizontal
5: 2-point vertical
6: 2-point slope up (/)
7: 2-point slope down (\)
8: 3-point horizontal
9: 3-point vertical
10: 3-point slope up (/)
11: 3-point slope down (\)
12: 3-point triangle up
13: 3-point triangle down
14: 4-point square
15: 4-point diamond
16: 5-point square
17: 5-point diamond
18: 6-point horizontal
19: 6-point vertical
20: 7-point horizontal
21: 7-point vertical
22: 8-point
23: 9-point
24: 13-point
25: 17-point
26: 25-point

23

Validation type/pattern

check-patterns

0x00000001: custom pattern 1 (will be ignored)
0x00000002: custom pattern 2 (will be ignored)
0x00000004: 1-point pattern (will be ignored)
0x00000008: 2-point horizontal
0x00000010: 2-point vertical
0x00000020: 2-point diagonal up
0x00000040: 2-point diagonal down
0x00000080: 3-point horizontal
0x00000100: 3-point vertical
0x00000200: 3-point diagonal up
0x00000400: 3-point diagonal down
0x00000800: 3-point triangle up
0x00001000: 3-point triangle down
0x00002000: 4-point square
0x00004000: 4-point diamond
0x00008000: 5-point square
0x00010000: 5-point diamond
0x00020000: 6-point horizontal
0x00040000: 6-point vertical
0x00080000: 7-point horizontal
0x00100000: 7-point vertical
0x00200000: 8-point
0x00400000: 9-point
0x00800000: 13-point
0x01000000: 17-point
0x02000000: 25-point

0x03FFFFF8

Bitmask controlling which calibration subpatterns are to be considered post validation in determining the set of possible eye-vector to gaze position mapping functions

Implicitly includes the current calibration pattern.

check-polynomials-x

0x0001: 1st order x, 2 coefficients
0x0002: 2nd order x, 3 coefficients
0x0004: 1st order x, 1st order y, 3 coefficients
0x0008: 2nd order x, 1st order y, 4 coefficients
0x0010: 2nd order x, 2nd order y, 5 coefficients
0x0020: 1st order x, with xy, 3 coefficients
0x0040: 2nd order x, with xy, 4 coefficients
0x0080: 1st order x, 1st order y, with xy, 4 coefficients
0x0100: 2nd order x, 1st order y, with xy, 5 coefficients
0x0200: 2nd order x, 2nd order y, with xy, 6 coefficients

0x03FF

Bitmask controlling which polynomial types are to be considered post validation in determining the set of possible eye-vector to gaze position mapping functions, x direction

Implicitly includes the polynomial chosen for the current calibration.

check-polynomials-y

0x0001: 1st order y, 2 coefficients
0x0002: 2nd order y, 3 coefficients
0x0004: 1st order y, 1st order x, 3 coefficients
0x0008: 2nd order y, 1st order x, 4 coefficients
0x0010: 2nd order y, 2nd order x, 5 coefficients
0x0020: 1st order y, with xy, 3 coefficients
0x0040: 2nd order y, with xy, 4 coefficients
0x0080: 1st order y, 1st order x, with xy, 4 coefficients
0x0100: 2nd order y, 1st order x, with xy, 5 coefficients
0x0200: 2nd order y, 2nd order x, with xy, 6 coefficients

0x03FF

Bitmask controlling which polynomial types are to be considered post validation in determining the set of possible eye-vector to gaze position mapping functions, y direction

Implicitly includes the polynomial chosen for the current calibration.

shuffle-targets

0: false
1: true

0

If set, shuffle the order of calibration/validation targets ahead of each calibration/validation run

self-paced-by-key

0: false
1: true

0

If set, the calibration/validation procedure is self-paced, by key press

self-paced-by-click

0: false
1: true

0

If set, the calibration/validation procedure is self-paced, by mouse click

target-phase1-duration

[0, 1000]

50

Duration of target phase 1 (fade-in attention target) [ms]

target-phase2-duration

[0, 2000]

750

Duration of target phase 2 (steady attention target) [ms]

Won’t be used if self-paced.

target-phase3-duration

[0, 1000]

200

Duration of target phase 3 (scale down target) [ms].

target-phase4-duration

[500, 3000]

1250

Duration of target phase 4 (steady final target) [ms].

target-symbol-duration

[0, 3000]
where 0 means no symbol shown

500

Duration of target symbol (an upright or rotated cross) displayed at target center during end of phase 4 [ms]

This optional symbol can be used to encourage the participant to really look at the target center.

intertarget-duration

[100, 5000]

500

Duration of intertarget interval [ms]

target-wakeup-duration

[500, 3000]

1500

Duration of wake-up target [ms]

target-baseline-duration

[1000, 5000]

2000

Duration of baseline target phase 4 [ms]

target-baseline-symbol-duration

[0, 5000]
where 0 means no symbol shown

0

Duration of baseline target symbol displayed at target center duration during end of phase 4 [ms]

baseline-focus-indicator

0: focus indicator disabled
1: focus indicator enabled for disk style target only
2: focus indicator enabled for disk and image style target

1

Baseline focus indicator visibility

calibration-left-limit

[-25, -5]

-13

Leftward gaze angle limit for calibration target [deg]

calibration-right-limit

[5, 25]

13

Rightward gaze angle limit for calibration target [deg]

calibration-up-limit

[-10, 15]

5

Upward gaze angle limit for calibration target [deg]

calibration-down-limit

[10, 35]

28

Downward gaze angle limit for calibration target [deg]

screen-left-margin

[2.5, 90]

10

Interior margin on screen defining the left side calibration target limit [%]

screen-right-margin

[2.5, 90]

10

Interior margin on screen defining the right side calibration target limit [%]

screen-top-margin

[2.5, 90]

10

Interior margin on screen defining the top side calibration target limit [%]

screen-bottom-margin

[2.5, 90]

10

Interior margin on screen defining the bottom side calibration target limit [%]

calibration-background-color

[0x000000, 0xFFFFFF]

0x808080

Background color of the calibration window [RGB]

calibration-background-tile

empty

Optional tile image (PNG, ARGB) for the calibration window background

Should preferably be a small (e.g. 100x100) blurry grid with transparency between the grid lines.

target-fill-image

empty

Optional calibration target fill image (PNG, ARGB) to be used instead of a solid color

Should preferably be a symmetrical target image.

target-attention-image

empty

Optional calibration target image (PNG, ARGB) to be used in the attention phase

If specified, this image will be used instead of the circular calibration target.

target-final-image

empty

Optional calibration target image (PNG, ARGB) to be used in the final phase

If specified, this image will be used instead of the circular calibration target.

target-baseline-image

empty

Optional baseline target image (PNG, ARGB)

If specified, this image will be used instead of the circular calibration target.

target-wakeup-image

empty

Optional wake-up target image (PNG, ARGB)

If specified, this image will be used instead of the circular wake-up target.

target-color

[0x000000, 0xFFFFFF]

0xFFC000

Color of the outer calibration target disk [RGB] to be used if no target fill image is specified

target-wakeup-color

[0x000000, 0xFFFFFF]

0xFF4010

Color of the wake-up target disk [RGB]

target-attention-size

[0.5, 3]

1

Size of the attention grabbing outer target disk [deg]

target-size

[0.2, 1]

0.35

Size of the black inner target disk [deg]

target-center-size

[0.05, 0.5]

0.15

Size of the white center disk inside the black inner target disk [deg]

target-wakeup-size

[1, 4]

2

Size of the wake-up target disk [deg]

target-image-scale

[0.5, 5]

2

Scale factor for the attention image width and final image width relative to the attention grabbing outer target disk size (see target-attention-size) resp. the inner target disk size (see target-size)

target-wakeup-image-scale

[0.5, 5]

1

Scale factor for the wake-up image width relative to the wake-up target disk size (see target-wakeup-size)

target-center-modulate-frequency

[0, 5]

2

Target center disk size modulation frequency [Hz]

target-fill-rotate-frequency

[0, 5]

0.75

Image rotation frequency used if a target fill image is specified [Hz]

target-attention-modulate-frequency

[0, 5]

0

Attention target size modulation frequency [Hz]

target-attention-modulate-amplitude

[0, 50]

0

Attention target size modulation amplitude [%]

target-wiggle-frequency

[0, 10]

0

Target wiggle frequency used for image based attention or final targets [Hz]

target-wiggle-amplitude

[0, 45]

0

Target wiggle amplitude used for image based attention or final targets [deg]

target-wakeup-modulate-frequency

[0, 5]

1

Wake-up target size modulation frequency [Hz]

target-wakeup-modulate-amplitude

[0, 50]

15

Wake-up target size modulation amplitude [%]

test-text-color

[0x000000, 0xFFFFFF]

0x000000

Color of test text items [RGB]

test-font-family

Sans

Font family of test item texts

test-font-size

[0.1, 5]

0.5

Font size of test item texts [deg]

frame-rate

125
250
500
750
1000

500

Camera frame rate [Hz]

Which frame rates are valid depends on the eye-tracker model and license.

num-frames-average

[1, 8]
where 1 means no averaging

1

Number of frames to be used in moving average

base-gain

[-12, 12]

0

Camera base gain [dB]

The total camera gain will be the sum of a fixed gain, a frame rate dependent gain, a duty-cycle dependent gain, a focus distance dependent gain, a focal ratio dependent gain, the base gain and the user controlled temporary gain.

base-gamma

[0.25, 2]

1

Camera base gamma value that can be used to produce more detail in dark areas (e.g. iris and pupil) at the cost of less detail in bright areas

1 means no different treatment of dark and bright pixels. The total camera gamma value will be the sum of the base gamma value and the user controlled temporary gamma value.

duty-cycle

[5, 95]

95

Camera duty-cycle [%]

illuminator-mode

0: illuminator disabled
1: illuminator statically enabled during capture
2: illuminator enabled during exposure only

1

Illuminator mode

two-pass-pupil-edge-fit

0: false
1: true

1

If set, perform two-pass detection if one of the pupil edge detection methods is selected

This will improve pupil edge detection when the pupil edge is partly obscured by the corneal reflection.

pupil-edge-smoothing

0: no smoothing
1: calculate moving average over edges
2..5: following moving average over edges, calculate harmonic fit where number of harmonics is pupiledgesmoothing minus 1

3

Pupil edges smoothing prior to edge fitting and center calculation

Don’t change unless for academic interest.

pupil-edge-fit-fans

0: false
1: true

1

If set, perform pupil edge detection and describe the pupil edge by fans (triangles) that originate from the presumed pupil center

Recommended.

pupil-edge-fit-ellipse

0: false
1: true

0

If set, perform pupil edge detection and fit an ellipse through the edge points

Note, this will not yield better results than the fan fitting method. Don’t use unless for academic interest.

pupil-edge-fit-harmonic

0: false
1: true

0

If set, perform pupil edge detection and perform a harmonic regression on the edge points

Depending on the number of harmonics defined this fits a circle or ellipse or higher order shape through the edge points. Note, this will not yield better results than the fan fitting method. Don’t use unless for academic interest.

num-pupil-edge-harmonics

[0, 10]

3

Number of harmonics to use in the harmonic pupil edge fit

Typical values are 2 (ellipse) or 3 (ellipse-like).

pupil-calculate-ellipse

0: false
1: true

1

If set, fit an ellipse on detected pupil edge points

Only applies if the fans fit or the harmonic fit method is used. This calculates the shape of the ellipse, it has no effect on the estimated pupil center.

position-noise-filter

[0, 100]
where 0 means filter is off

0

Pupil and CR position noise suppression filter weight [%]

This filter reduces pupil and CR position variance. By design the filter has no effect during head movement or eye movement. This filter is not recommended for sample rates below 500Hz, unless with a low weight.

lr-filter-length

[10, 80]

48

Linear regression filter length [ms]

This filter creates a low noise version of pupil and corneal reflection position. The output of the linear regression filter is a weighted value between filtered and unfiltered value where the weight is controlled by the RMSE of the linear regression (see other LR filter settings). This means the filter will only reduce noise during low variance intervals.

lr-filter-pupil-threshold

[0.01, 0.5]

0.09

Linear regression filter RMSE threshold for pupil position (Euclidean norm) [px]

This threshold defines the midpoint of a sigmoid shaped weight function. Below the threshold the filtered pupil position has more weight than the unfiltered pupil position. Above the threshold the opposite is true.

lr-filter-cr-threshold

[0.01, 0.5]

0.045

Linear regression filter RMSE threshold for CR position (Euclidean norm) [px]

This threshold defines the midpoint of a sigmoid shaped weight function. Below the threshold the filtered CR position has more weight than the unfiltered CR position. Above the threshold the opposite is true.

lr-filter-weight-steepness

[10, 1e+03]

250

Linear regression filter weight function steepness controlling how fast the transition from filtered to unfiltered position and vice versa will be

eye-features-filter-order

[0, 3]
where 0 means filter is off

0

Eye features filter order

Setting this enables (non-causal) smoothing weighted moving average) of all pupil, corneal reflection and iris features.

gaze-estimation-method

0: none
1: use pupil-CR vector
2: use pupil only
3: use CR only

1

Gaze estimation method

gaze-analysis-window-length

[12, 100]

24

Gaze analysis moving window length for measuring gaze velocity (by linear regression) [ms]

Rounded to an odd multiple of the frame period.

blink-pre-close-duration

[0, MIN(24, gazeanalysiswindowlength/2)]

8

Interval from assumed blink start to detected eye closure start [ms]

Rounded to a multiple of the frame period.

blink-post-open-duration

[0, MIN(24, gazeanalysiswindowlength/2)]

4

Interval from steady eye detection point (post eye opening) to assumed blink finish [ms]

Rounded to a multiple of the frame period.

max-blink-duration

[100, 1000]

500

Maximum valid duration of a blink [ms]

max-fixation-gap-duration

[0, 24]

8

Maximum allowed duration of a gap in a fixation interval [ms]

max-saccade-gap-duration

[0, 24]

12

Maximum allowed duration of a gap in a saccade interval [ms]

max-fixation-velocity

[1, 50]

15

Maximum velocity of a gaze sample below which it is classified as part of a fixation [deg/s]

min-saccade-velocity

[30, 300]

50

Minimum velocity of a gaze sample above which it is classified as part of a saccade [deg/s]

blink-update-interval

[20, 100]

0

Blink update interval [ms]

fixation-update-interval

[20, 250]

0

Fixation update interval [ms]

acceptable-pupil-noise-level

[0.01, 0.25]

0.06

Maximum pupil noise level during target presentation considered acceptable

If the noise level is higher than this the target presentation will be repeated.

too-high-pupil-noise-level

[0.01, 0.5]

0.2

Maximum pupil noise level during target presentation considered too high

If the noise level is higher than this the target will be marked invalid.

acceptable-cr-noise-level

[0.01, 0.25]

0.05

Maximum CR noise level during target presentation considered acceptable

If the noise level is higher than this the target presentation will be repeated.

too-high-cr-noise-level

[0.01, 0.5]

0.2

Maximum CR noise level during target presentation considered too high

If the noise level is higher than this the target will be marked invalid.

good-validation-gaze-error

[0.25, 1]

0.5

Maximum validation target gaze error considered good [deg]

fair-validation-gaze-error

[0.5, 2]

1

Maximum validation target gaze error considered fair [deg]

poor-validation-gaze-error

[1, 3]

2

Maximum validation target gaze error considered poor [deg]

bad-validation-gaze-error

[2, 6]

4

Maximum validation target gaze error considered bad [deg]

good-drift-check-gaze-error

[0.25, 1]

0.5

Maximum drift-check target gaze error considered good [deg]

fair-drift-check-gaze-error

[0.5, 2]

1

Maximum drift-check target gaze error considered fair [deg]

poor-drift-check-gaze-error

[1, 3]

2

Maximum drift-check target gaze error considered poor [deg]

bad-drift-check-gaze-error

[2, 6]

4

Maximum drift-check target gaze error considered bad [deg]

lenient-bad-drift-check-gaze-error

[4, 8]

6

Lenient maximum drift-check target gaze error considered bad [deg]

This is used instead of bad-drift-check-gaze-error when not calibrated.

auto-apply-drift-correction

0: false
1: true

1

If set, apply drift correction gaze offset after each successful drift-check yielding status good, fair or poor

r1-enable-1000hz

0: false
1: true

0

If set, selecting a frame rate of 1kHz will be enabled in case of an R1 eye-tracker

Normally disabled for this device for image quality reasons.

ramdisk-path

/dev/shm

Ramdisk path

Leave empty if not available.

ramdisk-limit

[0, 8192]

1024

Ramdisk limit for eye images saved in test mode [Mb]

Whether the required space is actually available is not checked.

memory-limit

[256, 8192]

1024

Memory limit for eye images saved in test mode [Mb]

Whether the required space is actually available is not checked.

save-edge-points-to-file

0: false
1: true

0

If set, include pupil and iris edge points in eye image files

This will add about 2-4kb to the size of eye image files.