We are pleased to announce the release of Pupil v1.9!
Download the latest bundle and let us know what you think via the #pupil channel on Discord 😄
Remote Recorder - #1194
Remote Recorder plugin no longer requires Pupil Mobile streams to be active in Capture. Instead, it lists all available devices and allows you to start and stop recordings with the click of a button. It is also possible to change the recording session names for all available devices at the same time.
This feature requires Pupil Mobile version
0.25.1 or higher.
Annotations are no longer special types of notifications. Annotations are now sent via the IPC under the topic
annotation. Recorded annotations are now stored in
Pupil Detectors - #1358
Reduced the default "maximum pupil size" setting in order to decrease false-positive detections.
Time Sync Group Members - #1277
Time Sync actors (e.g. Capture or Pupil Mobile) join a network group for discovery and time sync announcements. We added the functionality of listing all present group members in the
Time Sync plugin menu.
Be aware that all Pupil Mobile instances will be listed as
Buffered Playback - #1279
We added buffering to Pupil Player. Instead of decoding each frame on demand, Player decodes multiple frames ahead of time. This improves smooth playback, even at high playback speeds of h264 encoded videos.
Be aware, that this will require a bit more of memory as a trade-off.
We improved the different video export plugins.
There is a new
Eye Video Exporterplugin (#1301). This plugin will export eye videos for your recording.
Video Export Launcherwas renamed to
World Video Exporterto make its task clearer. By default, the exported video is no longer named
We implemented a new export management UI that is now used in
World Video Exporter,
Eye Video Exporter, and
iMotitions Exporter. You can add as many export tasks as needed and they will all be processed in order (#1322).
Raw Data Exporter
id csv columns have been renamed to more explicit titles (#1352).
iMotions Exporter: Support for world-less recordings - #1308
We added support for world-less recordings to the iMotions Exporter. World-less recordings do not include a scene (world) video and are common for AR/VR setups.
After opening a recording in Player, all annotations (recorded or added in Player) are stored in
annotation_player.pldata instead of the
offline data directory. This does not override
annotation.pldata, so you can reset annotations to the recorded ones by deleting
Recordings created by former versions of Pupil will be updated to the new format.
Surface edit bug on Macs with Retina displays - #1252
Crash when recording during Frame Publisher enabled - #1263
Synchronization Drift between Cameras and Recording Computer - #1266
Frame Publisherworld frame topic - #1276
Fixation Detectorbug where binocular 3d gaze data was ignored - #1286
Race condition during Player exports - #1304
Incorrect log message handling in background tasks - #1305
Timebase changes break fixation and blink detection in Capture - #1324
Use of deprecated fields in
Blink Detection- #1283
cysignal (on macOS and Linux only)
seek_control.trim_indeces_changednotification - #1329
set_min_calibration_confidencenotification - #1361
Fixed field consistency for monocularly mapped gaze - #1291
We are hiring Python developers!
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 full stack Python developers that have experience with kubernetes, docker, and async server-side Python.
Send an email to email@example.com with a CV to start a discussion. We look forward to hearing from you.