Open source mobile eye tracking platform.

Pupil is in active, community driven development.


Pupil is a head mounted mobile eye tracking platform.

Using Pupil hardware and software, you will be able to see what someone is looking at in real time, record gaze positions, visualize data, and analyze results.

Pupil Hardware

Pupil headsets are 3D printed frames that you wear like a pair of glasses.

A lot of design and engineering thought & energy has gone into getting the ergonomics of the headset just right.

Pupil headsets hold two cameras. One camera tracks and records your eye movements, and another camera records your field of view. Pupil headsets are lightweight and compatible with most modern computers with 2 USB ports.

Pupil headsets currently come in two models - Pupil Dev and Pupil Pro.

Pupil is 3D printed pre-tensioned. We use a Fininte Element Analysis simulation to compute the exact geometry of the headset. We print the deformed geometry. When you put the headset on your head, cameras come into alignment and the headset comfortably.

Pupil Dev

Pupil Pro

Pupil Front Pupil Pro Front
Description This is the "bare" version, with uncovered cameras and 720p World camera.
It is intended for individuals that want to experiment and use Pupil for their projects.
Pupil Pro is the next step up from Pupil Dev. It has upgraded Eye and World Cameras, improved cable management, and fully enclosed cameras.
Eye Camera Maximum Resolution - 640x360 @ 30fps
Infrared camera with IR Filter
Maximum Resolution - 640x480 @ 30fps
Infrared camera with IR Filter
Adjustable Camera Arm.
Detailed Specs
World Camera Maximum Resolution - 1280x720 @ 30fps
68 degree view angle
Maximum Resolution - 1920x1080 @ 30 fps
90 degree view angle
Design Exposed camera boards Fully enclosed camera boards
Connection USB USB with improved cable management
Material PLA PLA
Headset Weight 50 grams 44 grams
Cable Weight 60 grams 60 grams
Academic 380 € + shipping 800 € + shipping
Non-Academic Request Quotation


Pupil is a project in active, community driven development and distributed under an OpenSource license.

Pupil Capture and Pupil Player software run on Linux, MacOS, and Windows.

We are actively developing for Linux and MacOS. Windows installations are supported by the Pupil community. You can download the bundled app, plug in your Pupil Headset, and get started!

User Guide

Want to know how to get started?

Have questions about your setup?

Read about what you can do with Pupil on the wiki.

Go to Pupil Wiki

Get in Touch

Become part of the Pupil Community.

Ask questions & share work on the Pupil Google Group.

Need a higher level of support? Want to discuss custom setups?

Email Us

Contribute to an Open Source Project

We've made a lot of exciting progress with Pupil Capture and Pupil Player & there's always room for improvement!

A lot of work went into making the software modular and accessible. You can develop and extend to suit your needs. We want Pupil software to serve as an experiment and development platform for researchers and developers.

Developers, über-nerds, and code explorers -- you can fork and clone the repository and install all dependencies on your machine and run Pupil software directly from the Python source. Follow build instructions for your platform of choice.

Check out the developer guide on the wiki to see how to contribute. Make something awesome & send a pull request!


We want Pupil to proliferate & we want you to use Pupil to empower and inspire whatever you do.

Be it academic research, teaching, art, assistive technologies or professional work...

For noncommercial use, the software is free and Open Source, and the hardware is very accessible and modifiable. We consider you a member of the Pupil community rather than a customer of the Pupil product or Pupil Labs. We encourage the modification of software and hardware in accordance to the open source license

If you plan to use Pupil in a commercial context, you will receive a commercial use license with your purchase. We offer to work closely with you to integrate Pupil into your workflow.