Skip to content
eyeprocesspy 0.2.3 Stable · PyPI

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.

1,182 / 1,182 frozen APIs resolved 1,458 release tests 100% statement + branch coverage 88 / 88 workflow articles linked
gaze process explorer
Canonical gaze trace generated by eyeprocesspy
surface1,182 APIs
workflows88 linked
release gate100%
samples → events → process → evidence
Install stable pip install eyeprocesspy==0.2.3
September 2026 methods update · current development branch Measurement accountability is now explicit.

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.

Open measurement accountability
Development method · detector sensitivity Would the scientific conclusion change under another defensible event detector?

Run I-VT, I-DT, adaptive-velocity, REMoDNaV, external, or vendor event branches through the same AOIs, features, and model while preserving failures and provenance.

Open detector multiverse
Development method · AOI robustness Would the conclusion survive another defensible AOI boundary?

Prespecify pixel/degree perturbations, remap samples or fixations, preserve ambiguity and missingness, recompute features, propagate the same model, inspect assignment/coefficient stability, retain failures, and package the evidence for reviewers.

Open AOI robustness
01

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.

01
✓

Can I trust the raw tracking?

Audit schema, timing, validity, missingness, screen bounds, coordinates, calibration context, and provenance before computing metrics.

Import & audit →
02
◎

Where did gaze land?

Recover fixations, dwell, AOI occupancy, first-pass behavior, revisit structure, and spatial summaries without collapsing the process too early.

Measure gaze →
03
↗

How did gaze move?

Inspect saccades, scanpaths, transitions, recurrence, entropy, sequence structure, and spatial-temporal trajectories.

Model the process →
04
◉

What changed in pupil?

Prepare eye-specific pupil streams, baseline-correct transparently, quantify missingness, and connect temporal pupil measures to events.

Open pupillometry →
05
≈

Are process measures reliable?

Quantify agreement, repeatability, measurement stability, uncertainty, and sensitivity before interpreting individual or condition differences.

Inspect reliability →
06
θ

How should process evidence enter models?

Connect process measures to psychometrics, IRT, information, DIF/DTF, uncertainty, diagnostics, and model-ready analysis objects.

Open measurement models →
07
⌛

When did gaze arrive?

Retain never-inspected trials as right-censored observations and model first fixation, entry, revisit, transition, or disengagement latency.

Open survival analysis →
08
◇

How good was the measurement?

Separate target-referenced accuracy, short-term and spatial precision, BCEA, realized sampling behavior, jitter, and data loss before applying review rules.

Audit data quality →
09
▱

Are AOI conclusions geometry-sensitive?

Stress-test defensible boundary changes, assignment stability, zero-versus-missing denominators, coefficient trajectories, convergence, and model N.

Stress-test AOIs →
10
⇄

Should gaze enter mediation at trial level?

Preserve repeated-measures trials, separate within- and between-person components, audit missingness, and prepare model-ready mediation evidence without premature aggregation.

Prepare trial-level mediation →
Need the complete scientific map?Use the guide hub to move from question → assumptions → workflow → evidence.
Open guide map
02

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.

01Importvendor · generic · schema
→
02Audittiming · validity · missingness
→
03Preparecoordinates · events · pupil
→
04Measurefixations · AOIs · scanpaths
→
05Modelreliability · IRT · uncertainty
→
06Reportplots · provenance · evidence

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.
03

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.

04

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.

Parity-first implementation

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.

1,182 / 1,182frozen APIs resolved
1,458release tests passed
100% + 100%statements + branches
12 lanes3 OS × Python 3.11–3.14
R→Py

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 →
API

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 →
!
Interpretation boundary

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.

Ready to run the pipeline?

Start with the benchmark. Keep every decision visible.

Install 0.2.3, validate the known-good benchmark surface, then move into the workflow that matches your research question.

Bayesian-network analysis

eyeprocesspy now includes an optional downstream static Bayesian-network layer for validated multimodal features. It supports explicit scientific node metadata, temporal/edge constraints, pgmpy-backed learning and fitting, posterior queries, participant-level bootstrap stability, grouped validation, detector/AOI sensitivity, diagnostic plots, and reproducibility-oriented reports.

The boundary is deliberate: preprocessing, event detection, AOI assignment, pupil/physiology processing, and feature construction remain upstream. A learned directed edge is not, by itself, evidence of a causal effect.

Start with the Bayesian-network guide →