ETRA 2026

May 22, 2026

I’m Iranian Iranian flag (and proud to be!), which means the Kingdom of Morocco never issued me a visa to be at the ETRA 2026 in person! Anyway, my co-authors and lab mates are there presenting our works. Below are the posters, code, and links to each paper.

How Close Can You Go poster preview

This paper started when Renārs Trukša visited our lab in Joensuu and asked how close he could place the EyeLink 1000 Plus to his participants. We had access to the tracker, so we ran the experiment together and documented every step so others don’t have to start from scratch.

Paper: DOI Poster PDF Code and data on GitHub

PyeLink and SyeLink poster preview

I needed to pull every available measurement out of our EyeLink 1000 Plus, and the available tools didn’t give me a clean way to do it. Marcus Nyström and Diederick Niehorster shared their own code with me, and after days of refactoring it grew into two packages: PyeLink to have full control over the EyeLink 1000 Plus and SyeLink for parsing the resulting EDF files.

What sets PyeLink apart is that it exposes the pupil and corneal-reflection positions in the EyeLink 1000 Plus’s own camera coordinate system. In practice, this means you can treat the EyeLink as a camera, pull out the raw features it sees, and build your own gaze-estimation algorithm on top of them. PyeLink also exposes both the raw measurements and the calibration data across the full experiment — calibration, validation, and recording phases, while existing tools typically give you one or the other, not both.

Paper: DOI Poster PDF Demo on GitHub
PyeLink: PyPI version Downloads Docs Code on GitHub
SyeLink: PyPI version Downloads Docs Code on GitHub

A small companion tool came out of this work too: eyelink1000plus-pupil-size-to-mm converts the EyeLink’s arbitrary pupil-size units into millimeters, derived from artificial-eye recordings.

Tool: PyPI version Downloads Code on GitHub

PyEtSimul: An Open-Source Python Framework for Eye-Tracking Simulation

PyEtSimul illustration

I needed a simulator for an experiment, couldn’t find one that did what I wanted, and PyEtSimul was born. Since the paper went in I’ve kept adding things — most recently, end-to-end calibration following Stampe (1993). I validated it against high-resolution eye-image recordings and against simultaneously-recorded EyeLink 1000 Plus data, which is also why I needed PyeLink and SyeLink in the first place.

Paper: DOI
PyEtSimul: PyPI version Downloads Docs Code on GitHub

A small note

My long-term goal in eye tracking is to build a PSA-free eye tracker. If that overlaps with anything you’re working on, please get in touch: [email protected] or [email protected].

My previous works on the pupil-size artifact (PSA): paper 1 · paper 2