Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

eyetrajectoriespy

PyPI Python License: MIT Documentation

Functional analysis of continuous, sparse and irregular eye-tracking trajectories in Python.

Instead of reducing every trial immediately to fixation counts, dwell times or a symbolic scanpath, eyetrajectoriespy models gaze as a time-indexed planar process G(t) = [x(t), y(t)], with explicit observation and scientific-inference contracts.

Illustrative gaze trajectory, time representation and scientific analysis

Published stable: 1.1.0 · Python 3.11–3.13.
Published stable: 1.1.0. Literal prerelease candidate 1.2.0rc2: under new exact-version qualification; NOT published. Previous 1.2.0rc1 evidence remains independently archived, not reused as RC2 performance data. Ten run_*_workflow() routes are candidate-only; bundled E1–E4 helpers remain explicitly experimental and require separate review. GitHub/PyPI publication is still DISARMED.

Documentation · Start here · Choose a workflow · Figure atlas · Research evidence · News · Release status

Install stable 1.1.0

pip install eyetrajectoriespy==1.1.0
from eyetrajectoriespy import fit_mfpca, simulate_planar_trajectories

gaze = simulate_planar_trajectories(
    n_participants=20, trials_per_participant=6, random_state=7,
)
fit = fit_mfpca(gaze, n_components=0.95, scaling="dimension_sd")
print(fit.explained_variance_ratio)

This illustration uses deterministic synthetic data, not human-subject observations. For complete sparse examples, use the paired planar sparse guide.

What do you want to analyze?

Question Method family Guide
Dominant variation across x/y paths FPCA / planar MFPCA Continuous FPCA
Irregular and sparsely observed gaze Sparse FPCA/PACE, joint PACE Sparse planar gaze
Coordinate-asynchronous x/y samples Sparse asynchronous multivariate Qualified 1.1 module APIs
Time-varying condition effects Function-on-scalar regression Functional regression
Repeated participant/trial outcomes Functional mixed effects / multilevel Repeated-trial models
Temporal recurrence and dynamics Recurrence / RQA Nonlinear analysis

Product and research qualification

Surface State
Frozen 1.0 root API compatibility boundary Stable
Qualified 1.1 sparse/irregular module-scoped additions Stable 1.1.0
Ten transparent eyetrajectoriespy.workflows orchestration routes Unpublished 1.2 candidate
W3 nominal-90% whole-function inference Not generally calibrated — #289
Outcome-dependent missing gaze and selective validation Not field-identified — #296
1.2 GitHub Release / PyPI promotion Disarmed / HOLD

A successful synthetic benchmark or independent artifact replay is not the same as calibrated statistical inference or production release qualification. Read the scientific evidence guide.

Research news, figures and reproducibility

The W3 R76–R95 programme has published documentation of influential-unit, covariance, missingness, external-validation and identifiability experiments, including negative results. The scientific study map links original papers; the figure atlas includes source-derived synthetic plots. The R93, R94 and R95 sharp-set proofs are conditional population mathematics—not confidence intervals or real-gaze MNAR corrections.

October 2026 news · Original and independent evidence · Validation ledger

Which workflow do I need?

Choose by the gaze observation grid, the participant/trial hierarchy, and the uncertainty claim, not by the number of available estimators. The analysis decision map and workflow comparisons explain those choices.

Where is the full advanced API?

The compact README is an orientation page, not an exhaustive function catalogue. Use the stable public API, module-scoped 1.1 additions and the exact scientific references:

Historical release lineage: 0.10.0 introduced native sparse univariate FPCA/PACE, and the immutable 0.11.0rc1 pre-release preceded the 0.11 validation expansion. Published 1.1.0 remains the stable installation target.

Documentation and contribution

Quick start · Input schemas · Mathematics · Visual gallery · Reproducibility guide · Contributing · Cite

The package complements, rather than replaces, upstream fixation/saccade detection, instrument quality control, AOI event analysis and symbolic scanpath pipelines. MIT © 2026 Stefanos Balaskas.

Metadata

Release files for eyetrajectoriespy 1.2.0rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eyetrajectoriespy 1.2.0rc2
File Size Uploaded Provenance Actions
eyetrajectoriespy-1.2.0rc2.tar.gz 598.8 kB With provenance Details for eyetrajectoriespy-1.2.0rc2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for eyetrajectoriespy 1.2.0rc2
File Interpreter ABI Platform Actions
eyetrajectoriespy-1.2.0rc2-py3-none-any.whl Python 3 none any Details for eyetrajectoriespy-1.2.0rc2-py3-none-any.whl

Total release size: 1.1 MB

Release files / eyetrajectoriespy-1.2.0rc2.tar.gz

Download URL eyetrajectoriespy-1.2.0rc2.tar.gz
Size 598.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ea810de67bda6019b72db7e05145fdf36d700c5d23bbe4d6cb07d3f51c74adf8
BLAKE2b-256 checksum
How to use checksums
65de9caa7471c1dbee2ec1a92f060b32be32f695f64f910f403f5a9e14dac5a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / eyetrajectoriespy-1.2.0rc2-py3-none-any.whl

Download URL eyetrajectoriespy-1.2.0rc2-py3-none-any.whl
Size 480.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0641db2e634221d9e077b9f4c0837623eb97dc2dd245583ec9af5ba16396a134
BLAKE2b-256 checksum
How to use checksums
370d087351472c7cc689e152189c387fbaeb7b235fa91766955f5a46047d8ad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for eyetrajectoriespy 1.2.0rc2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for eyetrajectoriespy-1.2.0rc2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page