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.
Install the validated alpha¶
Verify:
Installation and first workflow →
What can gp3tools do?¶
-
Import & harmonise
Read Gazepoint exports, folders, fixation tables, summaries and external face-analysis data.
-
Quality control
Audit sampling rate, tracking quality, missingness, master-table integrity, screen bounds, coordinates, exclusions and model readiness.
-
Pupil preprocessing
Detect artifacts and blinks, combine binocular channels, interpolate, baseline-correct, smooth, downsample and reconstruct pupil signals.
-
AOI & transitions
Work with static, dynamic and polygon AOIs, entries, windows, transition matrices, entropy, sequences and network summaries.
-
Fixations & scanpaths
Analyse fixation/saccade events, scanpath geometry, clustering, stability, representative paths and detector agreement.
-
Models & inference
Prepare eye-tracking models, run time-course analysis, cluster permutation, sensitivity analysis and Bayesian bridge workflows.
-
Visualisation
Create heatmaps, pupil curves, missingness plots, scanpaths, transition matrices, cluster figures and binocular diagnostics.
-
Interoperability
Prepare outputs for BIDS, HDDM, eyetrackingR-style, pupillometryR-style, gazer, eyetools and gpbiometrics workflows.
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.
See the data, not just the API¶






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