I’m Iranian (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? Minimum Eye-to-Screen Distance for EyeLink 1000 Plus
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.
PyeLink and SyeLink: Open-source Python tools for low-level EyeLink experiment control and data parsing
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.
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.
PyEtSimul: An Open-Source Python Framework for Eye-Tracking Simulation
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.
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


