All software releases
Here you will find a log of all features, changes, bug fixes, and developer notes for Pupil Labs software.
Reference Image Mapper
The Reference Image Mapper is a powerful enrichment that enables you to automatically map gaze to an object of interest. This enrichment works best when you provide optimal reference image and scanning recording, and understand the limitations of the tool. To make this easier we have created an explainer video and integrated it directly into the enrichment creator.
We also added the reference image that was used to create the enrichment in the download. This ensures that this important image is always available for further analysis.
Undistorted Gaze Overlay Videos
Pupil Invisible's world camera uses a wide-angle lens to capture a large field of view which introduces optical distortion. We have introduced a new setting to the Gaze Overlay enrichment that enables you to removing this distortion from the video.
In-App Feature Notifications
We are regularly adding new features to Pupil Cloud and want to make sure every user stays on top of what is currently available and possible. New features will be announced within Pupil Cloud itself.
Please feel free to get in touch with feedback and questions via the #pupil channel on Discord! 😄
Pupil v3.3 focuses on improving software usability, stability and performance. We have made improvements to how product-specific plugins are loaded in Pupil Player, updated keyboard shortcuts, and fixed several stability issues. Additionally, the surface tracker now exports marker detection results.
Note: Prior to this release,
diameter_3d data for all Pupil Core v3 recordings did not have corneal refraction applied. See pye3d v0.0.7 notes below for updates and post-hoc fixes.
This release comes with our latest pye3d version including the following improvements
- Performance improvements - #27
- Simplification of
Conicparameter calculation - #26
- Correctly apply corneal-refraction correction to
diameter_3dresult - #28
All pye3d versions prior to 0.0.7 do not correctly apply corneal refraction to the
diameter_3d field. To check if you are affected by this bug, take a look at the
method column of your
You have two options to get correctly calculated pupil size data:
- Use the
circle_3d_radiusvalues and multiply them by 2, or
- Re-run the post-hoc pupil detection in Pupil Player v3.3 or later
Marker detection export - #2140
The Surface Tracker plugin requires fiducial markers for defining and tracking areas of interest. Until now, the detection result of these was only stored as an intermediate result. With this release, the data is also stored as a CSV file next to other surface-tracking related exports.
The data is exported to
|world_index||Scene video frame index|
|marker_uid||Label for identifying the marker|
|corner_0/1/2/3_x/y||Corner coordinates in pixels|
Improve surface detection consistency - #2139
Surfaces can now be defined as long as one or more markers are detected in the scene video. Previously, this was only sufficient in some cases – usually, at least two markers were needed.
Note: Surface tracking works best if you use multiple markers spread-out over the area of interest to define and track your surface. The surface position export files contains information about how many markers were detected for each surface position. You can use this information as an estimation of the tracking stability.
Product-specific plugin loading in Pupil Player, part 2 - #2125
We continue work on finetuning the list of enabled plugins for Pupil Invisible recordings.
Starting with this release we have removed the “Pupil from recording” option, as there is no pupillometry data to load from Pupil Invisible recordings. Pupil Player will no longer generate an empty
pupil_positions.csv file after export.
Keyboard shortcuts update - #2129
The default annotation keyboard shortcut was changed to
x in both Pupil Capture and Pupil Player to avoid collision with other plugin shortcuts.
- Fixed HMD calibration crashing Pupil Service - #2120
- Fixed Pupil Groups serialization issue - #2124
- Fixed toggling pupil detection on and off - #2126
- Fixed calibration area calculation errors - #2128
- Fixed video source replacement in eye process - #2131
- Fixed gaze visualization on Apple Silicon computers - #2132
- Fixed Pupil Invisible timestamp update procedure precision loss - #2134
- Made pye3d plugin’s debug visualization colors consistent - #2136
- Fixed validation crash when not enough reference data is collected - #2137
- Fixed a crash when using Time Sync on macOS - #2138
Python dependencies can be updated using
pip and the
python -m pip install --upgrade pip wheel pip install -r requirements.txt
We have specifically updated the version requirement for pye3d.
- Improved: Enrichment statuses have been renamed for more clarity:
- ‘Processing’ is now ‘In progress’
- ‘Ready’ is now ‘Ready to Compute’
- ‘Computed’ is now ‘Done’
- Improved: Reference Image Mapper now accepts PNG images as well as JPG images.
- New: Volume controls! Now all video players in app have a volume slider. Tip: Click the volume icon to mute.
Local Recording Export
Pupil Cloud is the recommended and most convenient method for moving recordings off of the Companion Device. However, we recognize that some users may not be able to use Pupil Cloud or have their own data processing pipelines running locally. Therefore, we implemented a feature to make it easier for users to export recordings from the Companion Device using a USB connection to a computer. This feature ensures that internal files required by the Pupil Invisible Companion app are excluded from the exported recordings, thereby maintaining a consistent file format. Check out the user guide in docs for more.
Watchdog Service Update
In our previous update, we have introduced the “watchdog service” that automatically detects issues like e.g. faulty USB connections at recording time and warns you about it. If there is an issue the Companion device will vibrate, a red LED on the Pupil Invisible Glasses will blink and the Companion app will let you know what the problem is.
This is an incremental update to this service improving its robustness and the range of failure modes it can detect.
The info.json file is saved with each recording, containing meta data about the recording. This file is primarily used by other software reading the recordings and developers. We have added two new keys to the info.json files that are saved with each recording: os_version and recovered_files. Check out the entire recording data format in docs.