Release v3.1

Release v3.1

Feb 10, 2021

Feb 10, 2021

We are pleased to announce the release of Pupil Core software v3.1!

Download the latest bundle (scroll down to the end of the release notes and see Assets).

Please feel free to get in touch with feedback and questions via the #pupil channel on Discord! 😄


Pupil Core software is now compatible with macOS 11 Big Sur! In addition, we have added support in Pupil Player for 200Hz gaze data downloaded from Pupil Cloud.


macOS 11 Big Sur compatibility - #2086, #2087, #2090, #2095

macOS 11 Big Sur introduced backwards-incompatible changes that caused earlier versions of Pupil Core and other software to not run properly.

There is currently only a single Python version, Python 3.9.1, that is fully compatible with macOS Big Sur. As a result, our new macOS Pupil Core bundle ships with this new Python version. This may have an effect on user plugin dependencies. For more information, check out the developer notes below.

Support for Pupil Cloud's 200Hz gaze recordings - #2082

Due to the computational limitations on the Companion Device, gaze data is recorded at 66Hz. Recent updates to Pupil Cloud automatically "upgrades" the gaze data recordings when they are uploaded to Pupil Cloud providing you with 200Hz gaze data. In version 3.1, Pupil Player can read and export the new data.

Note: Recordings that were downloaded prior to this Pupil Cloud update need to be re-downloaded in order to include the 200Hz gaze data.


Visual calibration marker appearance - #2095

The visual appearance of the calibration marker changed slightly, due to how we render the calibration marker on screen. The change was necessary to support screen-based calibrations on Apple Silicon Macs. As a result, the marker edges do not appear as smooth as the previous version. The overall design and detection process remains the same.

Bug Fixes

  • Gracefully handle Pupil Invisible video files starting with a null frame - #2077, #2089

  • Handle zero-byte video files when looking up Pupil Mobile intrinsics #2083

Developer notes

Dependencies updates

Python dependencies can be updated using pip and the requirements.txt file:

python -m pip install --upgrade pip wheel
pip install -r requirements.txt

Support latest GLEW 2.2 - pyglui #117

This release also adds support for the latest version of GLEW. This means that the pyglui dependency needs to be updated to version 1.29.

pye3d v0.0.5

We have included pye3d==0.0.5 which fixes compatibility issues with numpy==1.20 and scikit-learn==0.24.1.

macOS bundle shipping with Python 3.9.1

To simplify the usage of the application bundles, each bundle is shipped with their own Python environment. All plugins and their dependencies will run in the context of this environment.

Especially compiled dependencies, e.g. pyrealsense2, are always compiled against a specific Python version. If you are running custom user plugins, you will have to reinstall compiled dependencies in order to make them work with the new Python version.

Bundles ship with the following Python versions:

  • macOS: Python 3.9.1

  • Windows bundle: Python 3.6

  • Linux bundle: Python 3.6


To open the RAR-archive on Windows, you will need to use decompression software, such as WinRAR or 7-Zip (both are available for free).

macOS compatibility - #2086, #2087

Note: This is the first release to support macOS 11 Big Sur. We no longer support macOS 10.13 High Sierra since the macOS package manager homebrew no longer provides pre-compiled binaries for Pupil Core software dependencies.