This release is a pre-release and may not be stable for production use.
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: https://github.com/pymovements/pymovements
- Documentation: https://pymovements.readthedocs.io
- Source code: https://github.com/pymovements/pymovements
- PyPI package: https://pypi.org/project/pymovements
- Conda package: https://anaconda.org/conda-forge/pymovements
- Bug reports: https://github.com/pymovements/pymovements/issues
- Contributing: https://github.com/pymovements/pymovements/blob/main/CONTRIBUTING.md
- 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: 👉 :doc:user-guide/index
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
- :doc:
Installation Options <user-guide/getting-started/installation> - Tutorials
- API Reference
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
Use of Generative AI
Generative AI tools are used, under human direction, in the development and maintenance of pymovements. Anthropic's Claude, JetBrains' Junie, and GitHub Copilot assist some contributors and maintainers with tasks such as code generation, drafting tests and documentation, and code review.
Every change to the codebase requires an approving review from at least one maintainer before merging, and the maintainer team takes responsibility for the correctness and quality of all code and documentation in this package.
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
@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.
Acknowledgements
The pymovements project was partially funded by the Swiss National Science Foundation (SNSF) and the German Federal Ministry of Education and Research (BMBF). Please refer to our acknowledgements page for a comprehensive overview of funding and support.
Metadata
Release files for pymovements 0.28.0rc1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pymovements-0.28.0rc1.tar.gz | 251.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pymovements-0.28.0rc1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 616.5 kB
Release files / pymovements-0.28.0rc1.tar.gz
| Download URL | pymovements-0.28.0rc1.tar.gz |
|---|---|
| Size | 251.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4168f81f765885b5b8b617fc7f78dfc456de0851ba1dbb862c4b45f26d9e0bc6
|
|
BLAKE2b-256 checksum How to use checksums |
c5d4da3beae610ea553f3f1b138d1e3c411532b86525cb3b10ec7e105411fdaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 8, 2026.
Transparency logRelease files / pymovements-0.28.0rc1-py3-none-any.whl
| Download URL | pymovements-0.28.0rc1-py3-none-any.whl |
|---|---|
| Size | 364.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
528fba924baad38332b746d2258c5cd9ff2126d5649aa5f4afe4243fa9ab4a6e
|
|
BLAKE2b-256 checksum How to use checksums |
ca1178f7041bdd161d62b41eb9f3232af20bc88ff81b1a187953268e270a816f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 8, 2026.
Transparency log