Welcome to the pymovements documentation!#
pymovements is an open-source python package for processing eye movement data. It provides a simple interface to download publicly available datasets, preprocess gaze data, detect oculomotoric events and render plots to visually analyze your results.
Website: pymovements/pymovements
Documentation: https://pymovements.readthedocs.io
Source code: pymovements/pymovements
PyPI package: https://pypi.org/project/pymovements
Conda package: https://anaconda.org/conda-forge/pymovements
Bug reports: pymovements/pymovements#issues
Contributing: pymovements/pymovements
Mailing list: pymovements@python.org (subscribe)
Discord: https://discord.gg/K2uS2R6PNj
Getting Started#
If you are new to pymovements or to eye-tracking data analysis, we recommend starting with the User Guide, which introduces the concepts, data structures, and workflows used throughout the library: 👉 User Guide
Quick example#
For a minimal example of loading and processing eye-tracking data with pymovements:
import pymovements as pm
dataset = pm.Dataset(
'JuDo1000', # choose a public dataset from our dataset library
path='data/judo100', # setup your local dataset path
)
dataset.download() # download a public dataset from our dataset library
dataset.load() # load the dataset
Transform coordinates and calculate velocities:
dataset.pix2deg() # transform pixel coordinates to degrees of visual angle
dataset.pos2vel() # transform positional data to velocity data
Detect oculomotoric events:
dataset.detect('ivt') # detect fixation using the I-VT algorithm
dataset.detect('microsaccades') # detect saccades using the microsaccades algorithm
Quick Links#
Contributing#
We welcome any sort of contribution to pymovements!
For a detailed guide, please refer to our CONTRIBUTING.md first.
If you have any questions, please open an issue or write to us at pymovements@python.org
Citing#
If you use pymovements for a scientific publication, we would appreciate citations to the published software and the following paper:
pymovements on Zenodo. Please find us on Zenodo and replace with the citation for the version you are using. You can replace the full author list from there with “The pymovements project team” like in the example below.
@software{pymovements, author = {The pymovements project team}, title = {pymovements: A Python Package for Processing Eye Movement Data}, month = apr, year = 2026, publisher = {Zenodo}, version = {v0.26.2}, doi = {10.5281/zenodo.19486286}, url = {https://doi.org/10.5281/zenodo.19486286}, }
pymovements: A Python Package for Processing Eye Movement Data <pymovementsPaper
@inproceedings{pymovementsPaper, author = { Krakowczyk, Daniel G. and Reich, David R. and Chwastek, Jakob and Jakobi, Deborah N. and Prasse, Paul and SĂĽss, Assunta and Turuta, Oleksii and Kasprowski, Pawe\l{} and J\"{a}ger, Lena A. }, title = {pymovements: A Python Package for Processing Eye Movement Data}, year = {2023}, isbn = {9798400701504}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3588015.3590134}, doi = {10.1145/3588015.3590134}, booktitle = {Proceedings of the 2023 Symposium on Eye Tracking Research and Applications}, articleno = {53}, numpages = {2}, location = {Tubingen, Germany}, series = {ETRA '23} }
In case you want to cite specific parts of the package, like our dataset library or data quality reports, please consider citing our other publications listed on our citing page.