eyeprocesspy
Reproducible Python infrastructure for eye-tracking, pupillometry, AOIs, process data, psychometrics, and multimodal behavioral measurement.
Documentation · Getting started · Visual gallery · 88 workflow articles
eyeprocesspy is the Python companion and deep-parity port of the R package eyeprocess, with frozen eyeprocess 0.11.1 as the scientific reference. It brings vendor import, canonical data contracts, preprocessing, gaze/AOI analysis, pupil workflows, process measurement, IRT, validation, scientific plots, provenance, and reporting into one auditable package.
0.1.0 release evidence: the controlling deep-parity gate passed with 1,458 tests, 23,085 / 23,085 statements, and 9,680 / 9,680 branches covered. The frozen API and article ledgers are complete, and the cross-platform release matrix is green.
Release snapshot
| Dimension | Verified state |
|---|---|
| Frozen R public APIs resolved | 1,182 / 1,182 |
| Frozen R reference | 0.11.1 |
| Frozen workflow articles linked | 88 / 88 |
P4 numerical not_started debt |
0 |
P6 plot not_started debt |
0 |
| Full deep-parity tests | 1,458 passed |
| Statement coverage | 23,085 / 23,085 (100%) |
| Branch coverage | 9,680 / 9,680 (100%) |
| CI matrix | Ubuntu / macOS / Windows × Python 3.11–3.14 |
The exact evidence is recorded in RELEASE_VALIDATION.md and TEST_SUMMARY.md.
Installation
After publication to PyPI:
pip install eyeprocesspy
For development or source installation:
pip install "git+https://github.com/stefanosbalaskas/eyeprocesspy.git@v0.1.0"
Windows manual installation
The hardened installer has been exercised successfully on a real Windows installation with Python 3.11.9. Package verification passed, the recommended extras installed, and python -m pip check reported No broken requirements found.
From the extracted manual-install bundle:
Set-ExecutionPolicy -Scope Process Bypass
.\install_eyeprocesspy.ps1 -WithAllRecommended
The installer does not require the Windows py launcher and can also use an explicitly supplied interpreter path. See the manual-install guide.
Why eyeprocesspy?
- One coherent data model for recordings, gaze samples, eye/pupil samples, fixations and episodes, events, intervals, AOIs, responses, features, quality, and provenance.
- Scientific parity first: 1,182 / 1,182 frozen APIs are resolved against eyeprocess 0.11.1, with governed records for unavoidable cross-language differences.
- Process data as first-class evidence: scanpaths, transitions, temporal structure, uncertainty, reliability, and psychometrics live in the same analytical surface.
- Measurement guardrails: calibration uncertainty, quality, reliability, DIF/fairness, and process metrics retain explicit interpretation boundaries.
- Reproducibility by construction: deterministic benchmarks, provenance, validation evidence, software-paper evidence, and release audits are built in.
- Broad scientific plotting surface: gaze, AOI, pupil, quality, IRT, process-measurement, validation, and model-diagnostic graphics are supported through Matplotlib-oriented workflows.
Visual tour
| Gaze trace | Scanpath |
|---|---|
| Pupil time series | Probabilistic AOI membership |
|---|---|
| Process reliability | IRT information |
|---|---|
Open the complete visual gallery →
30-second reproducible check
import eyeprocesspy as ep
study = ep.eyeprocess_benchmark_study()
audit = ep.validate_benchmark_study(study)
data = ep.import_benchmark_study(study)
print(audit["valid"])
print(data)
For a real export:
import eyeprocesspy as ep
eye = ep.read_eye_export("participant_001.csv", vendor="auto")
issues = ep.validate_eye_dataset(eye)
Capability map
| Area | Representative capabilities |
|---|---|
| Import & canonicalization | Generic/vendor-aware readers, Gazepoint workflows, schema validation, coordinates, events/timebase, file pairing |
| Preprocessing & gaze | Fixations, saccades, dwell, scanpaths, transitions, entropy, recurrence, spatial/process features |
| AOI uncertainty | Hard, probabilistic and compositional AOIs; calibration-error propagation and sensitivity |
| Pupil & multimodal analysis | Baselines, pupil features, functional pupil, missingness, synchronized streams, staged multimodal models |
| Psychometrics & IRT | Foundations, scoring, fit, Q3, DIF/DTF, process-informed/dynamic/advanced IRT, diagnostics |
| Measurement intelligence | Reliability, calibration uncertainty, process guardrails, linking, norms, fairness, item-bank optimization |
| Validation | Recovery, SBC-style evidence, stress tests, negative controls, grouped/leakage-aware validation, evidence atlases |
| Reproducibility | Bundled benchmarks, provenance, manifests, frozen-R oracle, software-paper and release evidence |
| Plots & reporting | Publication-oriented plots, validation visualizations, scientific evidence/reporting helpers |
Documentation
- Website: https://stefanosbalaskas.github.io/eyeprocesspy/
- Getting started
- Manual installation
- Runnable examples
- Practical cookbook
- Visual gallery
- Python-native guides
- 88-article workflow library
- API and plotting reference
- FAQ
- Parity and validation
- Release and reproducibility
Scientific boundary
eyeprocesspy provides measurement and analysis infrastructure. A metric is not automatically a validated psychological construct, diagnosis, or causal explanation. Reliability does not establish construct validity; prediction does not establish causation; probabilistic AOI membership reflects modeled coordinate uncertainty rather than probability of attention; and gaze, pupil, and biometric measures require an appropriate design, measurement model, and ethical interpretation.
Relationship to R eyeprocess
The Python package is developed against the frozen eyeprocess 0.11.1 reference. API, articles, data, plots, backends, numerical evidence, and unavoidable language-specific divergences are tracked explicitly. Python-native extensions are separated from reference parity so they do not masquerade as R-equivalent behavior.
License
See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eyeprocesspy-0.1.0.tar.gz.
File metadata
- Download URL: eyeprocesspy-0.1.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85d8b7f45e036da056b20325121ef03ef235f25f0e802a2b11a0def5fbc32e63
|
|
| MD5 |
98a8c55052f96602cf206671fdebf2b7
|
|
| BLAKE2b-256 |
4e5e14eb754ec9d1352785eb970de4621877c12d86aef3644cded03a168686c1
|
Provenance
The following attestation bundles were made for eyeprocesspy-0.1.0.tar.gz:
Publisher:
release.yml on stefanosbalaskas/eyeprocesspy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eyeprocesspy-0.1.0.tar.gz -
Subject digest:
85d8b7f45e036da056b20325121ef03ef235f25f0e802a2b11a0def5fbc32e63 - Sigstore transparency entry: 2701702759
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/eyeprocesspy@3afa99597c3505372cabb76ef05099f8c9d0735e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3afa99597c3505372cabb76ef05099f8c9d0735e -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file eyeprocesspy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: eyeprocesspy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 833.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a42a2b28744d924333684522288a8b69788f6e7f2737b318b0937066f557b26a
|
|
| MD5 |
25272061dfb8a58883646cc95f1ce86a
|
|
| BLAKE2b-256 |
a5f49d69285d77777f71a7ce4c9574ac577f347d39da4dc3d76f6570178bb2df
|
Provenance
The following attestation bundles were made for eyeprocesspy-0.1.0-py3-none-any.whl:
Publisher:
release.yml on stefanosbalaskas/eyeprocesspy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eyeprocesspy-0.1.0-py3-none-any.whl -
Subject digest:
a42a2b28744d924333684522288a8b69788f6e7f2737b318b0937066f557b26a - Sigstore transparency entry: 2701702777
- Sigstore integration time:
-
Permalink:
stefanosbalaskas/eyeprocesspy@3afa99597c3505372cabb76ef05099f8c9d0735e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/stefanosbalaskas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3afa99597c3505372cabb76ef05099f8c9d0735e -
Trigger Event:
workflow_dispatch
-
Statement type: