Fixation Filter

#Explore how RealEye identifies fixations by analyzing gaze duration, movement speed, and noise-filtered data.

#How Does RealEye Compute Fixations?

Fixation is a sequence of gaze points that remain close in both time and space. RealEye uses an algorithm similar to the I-VT (Velocity-Threshold Identification) with the following criteria**:**

  • Maximum gaze duration is 33 ms, ending at the raw gaze timestamp.
  • Instead of measured angular velocity, RealEye classifies gaze movement by the distance it covers in the participant's rendered CSS pixels, presented as an estimated visual angle (1 CSS pixel ≈ 0.0213°).*
  • Fixation time expands if the gap between gazes is ≤50 ms.
  • Fixations require at least two gaze points.
  • Fixation coordinates are calculated as the average of all included gaze points.
  • Calculations use IEEE 754 double-precision format (14 decimal places).
  • Sampling Rate Requirement – The fixation filter works with data sampled at over 20 Hz.
  • AOI Fixation Inclusion – A fixation is considered part of an AOI (Area of Interest) if it begins within the AOI’s time range.

* Estimated visual angle. Assumes nominal viewing conditions: 1 CSS pixel ≈ 0.0213° (CSS reference pixel — 96 dpi at arm's length). Actual visual angle varies with physical screen size, viewing distance and browser zoom, so the value is an estimate, not a measurement.

To determine whether a cluster of gazes qualifies as a fixation, we define several parameters:

- Noise Reduction Window: the TOI (Time of Interest) window used to denoise raw data by applying a moving median algorithm. Each gaze point is replaced by the median of nearby points within the TOI window, reducing noise influence. Range: 20–1000 ms. Default: 200 ms.

  • Minimum Fixation Duration: the shortest time a gaze cluster (eye pause) must last to be considered a fixation. Range: 60–3000 ms. Default: 80 ms.

  • Maximum Fixation Duration: the longest time a gaze cluster can be considered a fixation before being split into multiple fixations. Range: 60–3000 ms. Default: 400 ms.

  • Gaze Velocity Threshold: data below this threshold is classified as a fixation, while higher-speed data is a saccade. The velocity is computed from the gaze movement in the participant's rendered CSS pixels, so the same on-screen movement classifies the same way on every screen size and device. Values are presented as an estimated visual angle in degrees per second (°/s*). Range: 5–300 °/s*. Default: 30 °/s.*

  • Maximum Saccade Duration: the upper time limit for saccades. Range: 20–300 ms. Default: 150 ms.

Check the Data Chart to see how different filter settings affect your results.

* Estimated visual angle. Assumes nominal viewing conditions: 1 CSS pixel ≈ 0.0213° (CSS reference pixel — 96 dpi at arm's length). Actual visual angle varies with physical screen size, viewing distance and browser zoom, so the value is an estimate, not a measurement.

Note on comparability: the classifier intentionally depends only on the CSS-pixel displacement and the time between samples. This replaces the previous viewport-diagonal calculation (percent of the browser viewport diagonal per second, restored in PR #1029) and does not re-apply the item-relative experiment reverted in PR #910 — the cross-device equivalence of identical item-relative movements (issue #840, criterion 1) is intentionally dropped. Fixation-derived metrics are therefore sensitive to the mix of screen sizes in a study; compare devices separately (for example desktop vs mobile) in cross-study or cross-wave comparisons. Heatmaps and AOI metrics stay relative to the item image and are unaffected.


💌 If you have any further questions, feel free to reach out to our team at support@realeye.io