GazeMapper
| gazeMapper | |
|---|---|
Screenshot of gazeMapper GUI | |
| Developer | Diederick C. Niehorster |
| Release | Version 0.5.0 (June, 2024) |
| Stable release | Version 1.8.4 (June, 2025)
|
| Written in | Python |
| Available in | English |
| License | MIT License |
| Website | pypi |
| Repository | github |
gazeMapper is an open-source software package developed by Diederick C. Niehorster to process data acquired from wearable eye trackers.[1] The software is available both as a Graphical user interface and as a Python library. It was originally released on June 10th 2024 and as of July 2026 is actively maintained with version 1.8.4 serving as the latest stable release.[1]
Background

Wearable eye trackers are head-mounted devices that record the user's point of gaze together with a video captured by a forward-facing scene camera.[2] Compared to remote eye trackers, which track gaze relatively to the screen in front of which they are usually positioned, wearable eye trackers allow to collect data in naturalistic and unconstrained settings.[2][3] This has enabled researchers to study cognitive load, social and object interactions as well as consumer preferences in real world environments.[4][5][6][7] However, in order to extract meaningful insights, the analysis of the data coming from these devices requires to transform the data expressed with respect to the wearer's head into gaze locations in the physical surrounding environment.[1][2][3][4][5][6][7]
Mapping approaches
So far, three main methodologies have been proposed to map head-referenced data into world-based coordinates:
- Manual frame-by-frame coding: the scene camera video is inspected frame by frame to determine the region or object the participant was looking at. While highly accurate, this approach is labor-intensive and difficult to scale to large datasets.[8][9][10]
- Automated object labeling: machine learning tools are used to automatically identify objects in the scene video and associate gaze points with the labeled boundaries.[11][12]
- Automated coordinate transformation: head-centered gaze coordinates are mathematically transformed onto detectable planar surfaces through homography and computer vision markers.[13]
gazeMapper implements the latter approach enabling high-throughput mapping of gaze coordinates onto real-world planes without requiring exhaustive manual annotation.[1][8][9][10][11][12][13]

Architecture and ecosystem

gazeMapper operates as part of a wider ecosystem of open-source eye-tracking utilities developed by Diederick C. Niehorster. In particular, the software has been designed to depend on two packages for data parsing and validation:[1]
- glassesTools: gazeMapper depends on this library to import recordings from commercial eye trackers and parse them into a standardized format.[14]
- glassesValidator: gazeMapper integrates the data-quality assessment algorithms from this library, allowing to determine accuracy and precision of eye-tracking data. This package, in turn, also relies on glassesTools for data ingestion when used as a stand-alone package.[1][13][14]
Functionality
gazeMapper has been designed to automate the data-processing pipeline for wearable eye-tracking research. The software addresses four analytical needs: transforming dynamic gaze data from the eye tracker's coordinate system to any reference plane, temporarily aligning gaze and scene camera data as well as synchronizing data from multiple devices, and validating the reliability of collected data.[1]

Mapping gaze data to reference planes
In order for gazeMapper to identify reference planes, researchers must affix ArUco markers onto the planar surfaces of interest in the experimental environment. As markers are detected in the scene camera video, the software calculates the spatial transformation homography between the head-mounted camera and the world plane. This allows to automatically project the wearer's point of gaze onto a stable, two-dimensional coordinate system.[1][13][15][16][17]
Synchronize gaze and scene camera

To ensure that the mapped gaze coordinates are projected onto the correct visual context, eye movement data and the scene video must be accurately synchronized. gazeMapper implements this functionality by having the participant perform a Vestibulo-ocular reflex task and having the operator manually align scene camera video movement with gaze. In practice, participants are asked to fixate on a target point as they oscillate their head, recording will therefore showcase a similar movement between gaze and the target in the scene camera, but with a temporal offset that can be compensated.[1][18]
Synchronize multiple eye tracker recordings
In studies investigating social interaction, researchers frequently collect data simultaneously from multiple participants wearing eye trackers. gazeMapper in this case provides the functionality to synchronize the data streams from each device when during the experiment a visual transient is periodically shown to all scene cameras actively recording. This can be a visual clapperboard or a flashing ArUco marker. Once the timestamps of the occurrence of the visual transient is coded by all the videos, a single reference recording is derived.[1][18]
Data quality assessment
To ensure the reliability of mapped data, or, more generally, perform eye-tracking validation studies, gazeMapper integrates the glassesValidator tool for extracting data quality metrics.[1] By having participants look at specific validation markers at various points during an experiment, the software calculates the three most commonly reported eye-tracking data quality metrics:[19][20][21]
- Accuracy: the spatial offset between the measured gaze point and the actual fixation target in degrees.[22]
- Precision: the spatial dispersion of the gaze signal, both in terms of sample-to-sample fluctuations, as root mean square of the offset between consecutive samples, and spatial spread of gaze samples, as standard deviation.[22]
- Data Loss: the percentage of missing gaze data caused by blinking or periods where data could not be mapped to the plane because the plane was not detected, such as when ArUco markers are not visible by the scene camera due to occlusions or motion blur.[1]
Providing automated access to these metrics allows researchers to objectively report data quality or exclude unreliable recordings from their analysis.[1][19][20][21][22]
Supported eye trackers

The tool currently supports importing and analysing data from the following devices:
- AdHawk MindLink
- Argus Science ETVision
- Meta Project Aria Generation 1
- Pupil Core
- Pupil Invisible
- Pupil Neon
- SeeTrue STONE
- SMI ETG 1 and ETG 2
- Tobii Pro Glasses 2
- Tobii Pro Glasses 3
- Viewpointsystem VPS 19
- Viewpointsystem VPS Lite
Additionally, a generic import class is provided for unsupported devices. Recordings can be processed through this class if they feature gaze data with timestamps, a corresponding scene camera video and camera calibration parameters.[1]
Usage and distribution
gazeMapper is distributed as a Python package via the Python Package Index (PyPI) and its source code is hosted on GitHub. As of July 2026, the software package has recorded over 22,000 downloads, reflecting its ongoing adoption within the eye-tracking and behavioral research communities.[23]
See also
References
- ^ a b c d e f g h i j k l m n o p Niehorster, Diederick C.; Hessels, Roy S.; Nyström, Marcus; Benjamins, Jeroen S.; Hooge, Ignace T. C. (3 June 2025). "gazeMapper: A tool for automated world-based analysis of gaze data from one or multiple wearable eye trackers". Behavior Research Methods. 57 (7) 188. doi:10.3758/s13428-025-02704-4. PMC 12134025. PMID 40461911.
- ^ a b c Holmqvist, Kenneth; Andersson, Richard (2017). Eye tracking: a comprehensive guide to methods, paradigms, and measures (2nd ed.). Lund, Sweden: Lund Eye-Tracking Research Institute. ISBN 978-1-9794-8489-3.
- ^ a b Duchowski, Andrew T. (2017). Eye Tracking Methodology. doi:10.1007/978-3-319-57883-5. ISBN 978-3-319-57881-1.[page needed]
- ^ a b Li, Jue; Li, Heng; Umer, Waleed; Wang, Hongwei; Xing, Xuejiao; Zhao, Shukai; Hou, Jun (January 2020). "Identification and classification of construction equipment operators' mental fatigue using wearable eye-tracking technology". Automation in Construction. 109 103000. doi:10.1016/j.autcon.2019.103000. hdl:10397/87710.
- ^ a b Jongerius, Chiara; Callemein, T.; Goedemé, T.; Van Beeck, K.; Romijn, J. A.; Smets, E. M. A.; Hillen, M. A. (October 2021). "Eye-tracking glasses in face-to-face interactions: Manual versus automated assessment of areas-of-interest". Behavior Research Methods. 53 (5): 2037–2048. doi:10.3758/s13428-021-01544-2. PMC 8516759. PMID 33742418.
- ^ a b Toyama, Takumi; Kieninger, Thomas; Shafait, Faisal; Dengel, Andreas (2012). "Gaze guided object recognition using a head-mounted eye tracker". Proceedings of the Symposium on Eye Tracking Research and Applications. pp. 91–98. doi:10.1145/2168556.2168570. ISBN 978-1-4503-1221-9.
- ^ a b Gidlöf, Kerstin; Wallin, Annika; Dewhurst, Richard; Holmqvist, Kenneth (17 January 2013). "Using Eye Tracking to Trace a Cognitive Process: Gaze Behaviour During Decision Making in a Natural Environment". Journal of Eye Movement Research. 6 (1). doi:10.16910/jemr.6.1.3.
- ^ a b Rogers, Shane L.; Speelman, Craig P.; Guidetti, Oliver; Longmuir, Melissa (9 March 2018). "Using dual eye tracking to uncover personal gaze patterns during social interaction". Scientific Reports. 8 (1) 4271. Bibcode:2018NatSR...8.4271R. doi:10.1038/s41598-018-22726-7. PMC 5844880. PMID 29523822.
- ^ a b Maran, Thomas; Hoffmann, Alexandra; Sachse, Pierre (August 2022). "Early lifetime experience of urban living predicts social attention in real world crowds". Cognition. 225 105099. doi:10.1016/j.cognition.2022.105099. PMID 35334252.
- ^ a b Benjamins, Jeroen S.; Hessels, Roy S.; Hooge, Ignace T. C. (2018). "Gazecode: Open-source software for manual mapping of mobile eye-tracking data". Proceedings of the 2018 ACM Symposium on Eye Tracking Research & Applications. pp. 1–4. doi:10.1145/3204493.3204568. hdl:1874/367922. ISBN 978-1-4503-5706-7.
- ^ a b Alinaghi, Negar; Hollendonner, Samuel; Giannopoulos, Ioannis (23 April 2024). "MYFix: Automated Fixation Annotation of Eye-Tracking Videos". Sensors. 24 (9): 2666. Bibcode:2024Senso..24.2666A. doi:10.3390/s24092666. PMC 11085856. PMID 38732772.
- ^ a b Mercier, Julien; Ertz, Olivier; Bocher, Erwan (29 April 2024). "Quantifying dwell time with location-based augmented reality: Dynamic AOI analysis on mobile eye tracking data with vision transformer". Journal of Eye Movement Research. 17 (3). doi:10.16910/jemr.17.3.3. PMC 11165940. PMID 38863891.
- ^ a b c d Niehorster, Diederick C.; Hessels, Roy S.; Benjamins, Jeroen S.; Nyström, Marcus; Hooge, Ignace T. C. (8 June 2023). "GlassesValidator: A data quality tool for eye tracking glasses". Behavior Research Methods. 56 (3): 1476–1484. doi:10.3758/s13428-023-02105-5. PMC 10991001. PMID 37326770.
- ^ a b Niehorster, Diederick C. (2026-06-22), dcnieho/glassesTools, retrieved 2026-07-03
- ^ Santini, Thiago; Fuhl, Wolfgang; Kasneci, Enkelejda (2017). "CalibMe: Fast and Unsupervised Eye Tracker Calibration for Gaze-Based Pervasive Human-Computer Interaction". Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. pp. 2594–2605. doi:10.1145/3025453.3025950. ISBN 978-1-4503-4655-9.
- ^ Niehorster, Diederick C.; Santini, Thiago; Hessels, Roy S.; Hooge, Ignace T. C.; Kasneci, Enkelejda; Nyström, Marcus (June 2020). "The impact of slippage on the data quality of head-worn eye trackers". Behavior Research Methods. 52 (3): 1140–1160. doi:10.3758/s13428-019-01307-0. PMC 7280360. PMID 31898290.
- ^ Duchowski, Andrew T.; Peysakhovich, Vsevolod; Krejtz, Krzysztof (2020). "Using Pose Estimation to Map Gaze to Detected Fiducial Markers". Procedia Computer Science. 176: 3771–3779. doi:10.1016/j.procs.2020.09.010.
- ^ a b Hessels, Roy S.; Teunisse, Martin K.; Niehorster, Diederick C.; Nyström, Marcus; Benjamins, Jeroen S.; Senju, Atsushi; Hooge, Ignace T. C. (21 April 2023). "Task-related gaze behaviour in face-to-face dyadic collaboration: Toward an interactive theory?". Visual Cognition. 31 (4): 291–313. doi:10.1080/13506285.2023.2250507.
- ^ a b Holmqvist, Kenneth; Nyström, Marcus; Mulvey, Fiona (2012). "Eye tracker data quality: What it is and how to measure it". Proceedings of the Symposium on Eye Tracking Research and Applications. pp. 45–52. doi:10.1145/2168556.2168563. ISBN 978-1-4503-1221-9.
- ^ a b Niehorster, Diederick C.; Santini, Thiago; Hessels, Roy S.; Hooge, Ignace T. C.; Kasneci, Enkelejda; Nyström, Marcus (June 2020). "The impact of slippage on the data quality of head-worn eye trackers". Behavior Research Methods. 52 (3): 1140–1160. doi:10.3758/s13428-019-01307-0. PMC 7280360. PMID 31898290.
- ^ a b Hooge, Ignace T. C.; Niehorster, Diederick C.; Hessels, Roy S.; Benjamins, Jeroen S.; Nyström, Marcus (3 November 2022). "How robust are wearable eye trackers to slow and fast head and body movements?". Behavior Research Methods. 55 (8): 4128–4142. doi:10.3758/s13428-022-02010-3. PMC 10700439. PMID 36326998.
- ^ a b c Niehorster, Diederick C.; Nyström, Marcus; Hessels, Roy S.; Benjamins, Jeroen S.; Andersson, Richard; Hooge, Ignace T. C. (2 June 2026). "The fundamentals of eye tracking, Part 7: Determining data quality". Behavior Research Methods. 58 (7) 183. doi:10.3758/s13428-026-03039-4. PMC 13230380. PMID 42230437.
- ^ pepy.tech. "gazeMapper · 22.4k downloads on PyPI". pepy.tech. Retrieved 2026-07-02.
Further reading
- Holmqvist, Kenneth (2023). "Eye tracking: empirical foundations for a minimal reporting guideline". Behavior Research Methods. 55 (1): 364–416. doi:10.3758/s13428-021-01762-8. PMC 9535040. PMID 35384605. (Retracted, see doi:10.3758/s13428-023-02285-0, PMID 37973712) Retracted in 2023. Included here because it contains an extensive review of eye-tracking data quality and reporting practices.[better source needed]
- Garrido-Jurado, Sergio; Muñoz-Salinas, Rafael; Madrid-Cuevas, Francisco J.; Marín-Jiménez, Manuel J. (2014). "Automatic generation and detection of highly reliable fiducial markers under occlusion". Pattern Recognition. 47 (6): 2280–2292. Bibcode:2014PatRe..47.2280G. doi:10.1016/j.patcog.2014.01.005.
External links
- GazeMapper on GitHub
- GlassesValidator on GitHub
- GlassesTools on GitHub
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.