We are pleased to announce the release of Pupil v1.22!
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 😄
Features and Changes
Video Source Rework - #1792
We have reworked the video source input system to greatly improve stability, user experience, and maintainability of the related features:
Single Plugin UI
All previous plugins for managing the video source (managers and sources) have been unified under a single plugin menu: Video Source, which handles device/camera selection as well as adjusting camera settings.
Automatic vs Manual Camera Selection
The new source system offers two ways for selecting cameras: automatic and manual:
In automatic mode (default) you can activate source devices, e.g. Local USB or Pupil Mobile. Activating a device selects the best matching available cameras as input for all windows in Pupil Capture.
Enabling manual mode allows you to select cameras individually for every window.
The following non-essential user interface elements have been removed to provide a better overall user experience:
The UI for selecting a file source has been removed. Starting a file source via network notification or via drag-and-drop is still possible.
Manually selecting HMD-Eyes as input source has been removed, as the plugin is started from Unity via network notification.
The Capture plugin UI in the eye windows has been removed entirely from Pupil Player as the displayed information was incomplete and the interactivity was limited.
The Test Image source has been removed as it was only intended for development use.
Removed Built-in RealSense Video Backend
Intel RealSense sensors are designed as a prototyping/development platform. Intel deprecates RealSense hardware frequently. Driver support is appropriate for a prototyping tool, but it is not sufficient for a production ready tool.
We have tried to build our tools around Intel's changing APIs and patchwork driver support, but this became difficult and confusing for users.
You can still use RealSense Video Backend as a custom plugin. You can load it directly in the plugin folder of Pupil Capture. Check it out here.
Player: Add Gaze History to Polyline Visualization - #1785
We decided to use the Polyline Visualization as a replacement for the previously removed Scan Path Plugin. You can now visualize past gaze points up to a certain duration by adjusting the duration slider in the
Vis Polyline Plugin. When first dragging the slider, the history for all frames will be computed, which will take some time. Afterwards you can see the gaze history and adjust the duration instantly.
Capture: Improved Region of Interest (ROI) selection - #1788
The ROI selector for the eye windows has been improved for better stability and better user experience. In doing so, we standardized the format of ROI boundaries across Pupil to the following order:
(minx, miny, maxx, maxy). Please note that this changes the format for adjusting the ROI via network messages.
Player: Add 3D Eyeball Visualization - #1810
We have added the green circle overlay for the 3D eyeball to Player. The overlay will be added to the
Eye Overlay and
Eye Video Exporter plugins, when 3D pupil data is available. You can disable the visualization (including the pupil outline) via the corresponding plugin menus.
Changed Windows disconnection log-level from warning to debug - #1786
Fixed some of small bugs in the ROI selector - #1788
Fixed mixed up export columns for monocular
Prevent a crash caused by incorrect UVC timestamps - #1812
Getting Rid of C++ Dependencies - #1789
We have made the next step towards an easier installation process of Pupil. After the externalization of the Pupil Detectors in v1.20, we have been able to replace the last remaining C++ module with a Scipy re-implementation. This means that you do not have to compile any Python Extension Modules when starting Pupil.
As a result, you can now run Pupil from source on Windows without having to go through the trouble of setting up CERES. While the pupil-detectors still depend on CERES, we offer prebuilt wheels for Windows that you can install without having to set up the dependencies.
We updated the
pyglui dependency to v1.27. Please update with:
We Are Hiring Python & DevOps Engineers!
Hey - you're reading the developer notes, so this is for you! We're looking to hire developers to contribute to Pupil source code. If you love Python and enjoy writing code that is a joy to read, get in touch. Experience with the scientific Python stack is a plus, but not required. We have a lot of exciting projects in the pipeline.
We are also looking for Senior Full Stack/DevOps engineers that have experience with kubernetes, docker, and server-side Python.
Send an email to firstname.lastname@example.org with a CV to start a discussion. We look forward to hearing from you.
Release Notes Update
#1817 - Fixed a regression which caused all frames to be dropped after changing Pupil Capture's time base.
Commit bcfbf7d - Fixed a typo that caused the
v1.22.3fix to not work correctly.