Skip to content
SPECIFICTION
Get listed

iTrace

github.com

Free plan WebLinuxSelf-hosted
Visit github.com
Spec score 8.4 #2 of 27 in Eye Tracking Software

What it is

iTrace is a free, MIT-licensed toolkit for analyzing webcam eye-tracking data, with a scientific core built on NumPy and SciPy. It computes gaze in degrees of visual angle and detects fixations, saccades, and microsaccades using I-VT, I-DT, and Engbert–Kliegl methods. Pupil tools include blink detection and interpolation, preprocessing, and eye-crop segmentation measured in pixels or relative to iris size. Affine screen-space calibration reports calibration error and gaze-quality measures. The command-line tool analyzes gaze CSV files and exports JSON reports. Optional webcam capture uses OpenCV and MediaPipe, and optional interfaces include a local HTML app using FastAPI and WebSockets and a Streamlit dashboard. Live workflows can export derived gaze, pupil, and capture CSVs. By default, the workflow does not save raw eye video or persisted eye-crop images, though live viewing may send a temporary JPEG crop to a browser over a local WebSocket. The project says its checks use synthetic ground truth rather than real eye-tracking data or a reference device. Webcam pupil size is a relative proxy, not a measurement in millimetres.

Spec sheet

Purpose
iTrace is a webcam eye-movement analysis toolkit for gaze, saccades, microsaccades, and pupil measurements.Read 10 Oct 2026 · github.com
Integrations
The project lists OpenCV, MediaPipe, FastAPI, Uvicorn, Streamlit, Plotly, and Matplotlib as optional dependencies.Read 10 Oct 2026 · github.com
License
The software is released under the MIT License.Read 10 Oct 2026 · github.com
Accuracy limit
The live webcam pupil measurement is a relative proxy and does not infer pupil diameter in millimetres.Read 9 Oct 2026 · github.com
Accuracy limitation
The project states that live webcam pupil measurements are a relative algorithmic proxy and do not infer millimetres.Read 10 Oct 2026 · github.com
Analysis core
The scientific analysis core uses NumPy and SciPy, with webcam capture provided as an optional layer.Read 10 Oct 2026 · github.com
Analysis methods
Its analysis includes I-VT and I-DT event detection, Engbert–Kliegl microsaccade detection, and pupil blink detection and interpolation.Read 10 Oct 2026 · github.com
Calibration
It supports affine screen-space calibration and reports calibration error and gaze-quality measures.Read 9 Oct 2026 · github.com
Capture and interfaces
Optional components use OpenCV and MediaPipe for capture, FastAPI and WebSockets for a local HTML interface, and Streamlit with Plotly for a dashboard.Read 10 Oct 2026 · github.com
Capture integrations
Optional webcam capture uses OpenCV and MediaPipe Face Mesh iris landmarks.Read 9 Oct 2026 · github.com
Data handling
The README says the default export writes derived gaze, pupil, and capture CSVs without writing raw eye video or persisted eye-crop images.Read 10 Oct 2026 · github.com
Exports
The live app can export derived gaze, pupil, and capture-record CSVs plus a JSON analysis report; its default workflow does not save raw eye video or persisted eye-crop images.Read 9 Oct 2026 · github.com
Gaze and events
It computes gaze in degrees of visual angle and detects fixations, saccades, and microsaccades using I-VT, I-DT, and Engbert–Kliegl methods.Read 9 Oct 2026 · github.com
Inputs and outputs
The CLI can analyze gaze CSV files and export JSON reports, and can record gaze and pupil CSV data from a camera.Read 10 Oct 2026 · github.com
Install options
The README documents Python installation through uv, with capture, dashboard, figures, and web components available as optional extras.Read 9 Oct 2026 · github.com
Intended audience
The package metadata identifies science and research as its intended audience.Read 10 Oct 2026 · github.com
Live interfaces
Optional interfaces include a local FastAPI and WebSocket HTML app and a Streamlit dashboard.Read 9 Oct 2026 · github.com
Pupil analysis
Pupil tools include blink detection and interpolation, preprocessing, and eye-crop segmentation that reports pixel or pupil-to-iris-relative size.Read 9 Oct 2026 · github.com
Security and privacy
The project describes its default export as privacy-preserving and says live viewing may send a transient JPEG eye crop to the browser over a local WebSocket.Read 10 Oct 2026 · github.com
Use case
The README presents it as a reference implementation of eye-movement estimation algorithms and advises comparison with a reference device or public dataset before reporting device-level accuracy.Read 9 Oct 2026 · github.com
Validation limit
The project says it is algorithmically verified against synthetic ground truth but has not been validated against real eye-tracking data or a reference eye tracker.Read 9 Oct 2026 · github.com
Validation limitation
The README says its synthetic and closed-loop checks are not real-device validation and that no bundled real-device validation is claimed.Read 10 Oct 2026 · github.com

Plans and prices

iTrace (MIT-licensed open-source software) Free MIT license · Python package Read 10 Oct 2026 · github.com

Every iTrace plan and price →

Strong points and limits

Strong points

  • Detects fixations, saccades, and microsaccades
  • Reports calibration error and gaze-quality measures
  • Exports gaze and pupil data as CSV
  • MIT-licensed and free

Limits

  • Not validated against real eye-tracking data
  • Webcam pupil measurement is a relative proxy
  • Default workflow does not save raw eye video

Who it suits

It suits science and research users who need an open-source reference implementation for eye-movement estimation. The project advises comparison with a reference device or public dataset before reporting device-level accuracy.

Verdict

iTrace provides several analysis methods, calibration measures, and optional capture and viewing interfaces. Its stated validation is synthetic, so compare results with a reference device or public dataset before making device-level accuracy claims.

Where Specifiction places it

Alternatives to iTraceAll alternatives →