See the gaze process.
Measure what changes.
Vendor-neutral Python infrastructure for eye-tracking, pupillometry, AOIs, scanpaths, behavioral process measurement, psychometrics, uncertainty, validation, and reproducible research.
Compare three pupil-latency estimators with resolvability diagnostics, audit event-marker plausibility without altering timestamps, and separate acquisition, analytical, construct, within-person, and held-out-person evidence before making generalization claims.
Start from the research question
Choose the workflow by what you need to establish.
Move from a substantive measurement question to an auditable workflow instead of starting from a function name.
Can I trust the raw tracking?
Audit schema, timing, validity, missingness, screen bounds, coordinates, calibration context, and provenance before computing metrics.
Import & audit → 02Where did gaze land?
Recover fixations, dwell, AOI occupancy, first-pass behavior, revisit structure, and spatial summaries without collapsing the process too early.
Measure gaze → 03How did gaze move?
Inspect saccades, scanpaths, transitions, recurrence, entropy, sequence structure, and spatial-temporal trajectories.
Model the process → 04What changed in pupil?
Prepare eye-specific pupil streams, baseline-correct transparently, quantify missingness, and connect temporal pupil measures to events.
Open pupillometry → 05Are process measures reliable?
Quantify agreement, repeatability, measurement stability, uncertainty, and sensitivity before interpreting individual or condition differences.
Inspect reliability → 06How should process evidence enter models?
Connect process measures to psychometrics, IRT, information, DIF/DTF, uncertainty, diagnostics, and model-ready analysis objects.
Open measurement models →A defensible measurement chain
From raw exports to a reportable result.
Every stage preserves enough information to inspect the assumptions made at the next one.
A broad API, composed into one governed workflow
Start with the bundled benchmark, validate the installation and data surface, then move into study-specific imports and analysis.
Quickstart →import eyeprocesspy as ep
study = ep.eyeprocess_benchmark_study()
audit = ep.validate_benchmark_study(study)
data = ep.import_benchmark_study(study)
assert audit["valid"]
# Continue with gaze, AOI, pupil,
# process, reliability, and model workflows.See the process
Visual outputs that stay connected to the method.
Use plots as analytical summaries and diagnostics, not decoration. The gallery exposes trajectories, uncertainty, temporal structure, and reliability.
Evidence, not just features
Built around an explicit scientific validation record.
The Python implementation is tied to a frozen R reference and exposes release evidence, translation boundaries, and reproducibility state instead of hiding them.
Frozen reference. Audited translation. Python-native workflows.
eyeprocesspy retains the frozen eyeprocess R 0.11.1 scientific reference while exposing a native Python surface across eye tracking, pupil, AOIs, process measurement, psychometrics, validation, and reporting.
Coming from eyeprocess in R?
Use the parity record to understand the frozen reference, resolved API surface, scientific checks, and deliberate Python translation boundaries.
Open the R → Python evidence →Already know the method?
Jump directly to the reference map and inspect the complete API, plotting surface, signatures, parameters, and implementation notes.
Browse the API reference →Gaze structure is not a psychological state.
Reliability is not construct validity, prediction is not causation, probabilistic AOI membership represents modeled coordinate uncertainty rather than probability of attention, and gaze or pupil measures do not independently establish cognition, emotion, intention, comprehension, diagnosis, or causal effects.
Start with the benchmark. Keep every decision visible.
Install 0.1.0, validate the known-good benchmark surface, then move into the workflow that matches your research question.