Skip to content
GAZEPOINT GP3 · EYE-TRACKING · PYTHON

gp3tools for Python

From raw Gazepoint exports to auditable eye-tracking analysis.

gp3tools is a broad Python toolkit for importing, validating, preprocessing, visualising, modelling and reporting Gazepoint GP3 / Gazepoint Analysis data.

The Python implementation was validated against the frozen public API of gp3tools R 2.3.0, while providing native Python workflows for gaze, pupil, AOI, fixations, scanpaths, quality control, multimodal analysis, statistics and research reporting.

Get started Browse the API Release v0.1.0a1

278canonical R exports
285Python public names
684validated tests
90.06%line coverage
3.11–3.13CI-tested Python

Install the validated alpha

python -m pip install "gp3tools==0.1.0a1"
python -m pip install --pre gp3tools
uv pip install "gp3tools==0.1.0a1"

Verify:

import gp3tools as gp3

print(gp3.__version__)
print(len(gp3.R_EXPORTS))
# 278

Installation and first workflow →


What can gp3tools do?

  • Import & harmonise

    Read Gazepoint exports, folders, fixation tables, summaries and external face-analysis data.

    End-to-end workflow →

  • Quality control

    Audit sampling rate, tracking quality, missingness, master-table integrity, screen bounds, coordinates, exclusions and model readiness.

    QC workflows →

  • Pupil preprocessing

    Detect artifacts and blinks, combine binocular channels, interpolate, baseline-correct, smooth, downsample and reconstruct pupil signals.

    Pupil workflow →

  • AOI & transitions

    Work with static, dynamic and polygon AOIs, entries, windows, transition matrices, entropy, sequences and network summaries.

    AOI workflow →

  • Fixations & scanpaths

    Analyse fixation/saccade events, scanpath geometry, clustering, stability, representative paths and detector agreement.

    Scanpaths →

  • Models & inference

    Prepare eye-tracking models, run time-course analysis, cluster permutation, sensitivity analysis and Bayesian bridge workflows.

    Statistical workflows →

  • Visualisation

    Create heatmaps, pupil curves, missingness plots, scanpaths, transition matrices, cluster figures and binocular diagnostics.

    Plot gallery →

  • Interoperability

    Prepare outputs for BIDS, HDDM, eyetrackingR-style, pupillometryR-style, gazer, eyetools and gpbiometrics workflows.

    Ecosystem exports →


A workflow in a few lines

import gp3tools as gp3

master = gp3.load_example_master()

sampling = gp3.check_sampling_rate(
    master,
    time_col="TIME",
    group_cols=["subject", "trial_global"],
)

processed = gp3.preprocess_gazepoint_signals(
    master,
    pupil_col="pupil",
    time_col="TIME",
)

transitions = gp3.compute_gazepoint_aoi_transition_matrix(
    master,
    aoi_col="aoi_current",
)

fig = gp3.plot_gazepoint_heatmap(master)

The bundled datasets are synthetic, so core workflows can be reproduced without private participant data.

Complete Python workflow →


See the data, not just the API

Open the full plot gallery →


Validation at a glance

Validated release surface

v0.1.0a1 freezes 278 canonical R exports and exposes 285 Python public names, with 684 passing tests, 90.06% line coverage, R1–R4 behavioral and semantic validation, strict documentation builds, runnable examples, distribution builds and wheel-installation validation.

Scientific backend transparency

Functions whose original R implementation depended on engines such as lme4, glmmTMB, mgcv or brms are documented as Python-native adaptations rather than falsely presented as coefficient-identical implementations.

Read the parity and validation status →


Citation

Balaskas, S. (2026). gp3tools: An R Package for Reproducible Analysis and Reporting of Gazepoint GP3 Eye-Tracking Exports. Journal of Eye Movement Research, 19(4), 76. https://doi.org/10.3390/jemr19040076

GitHub Release PyPI Zenodo DOI R implementation