Pupil Capture, Player, and Service release
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 π
Features
Capture
Remote Recorder - #1194
The 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.
Annotation Plugin
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 annotation.pldata
.
Pupil Detectors - #1358
Reduced the default "maximum pupil size" setting in order to decrease false-positive detections.
Time Sync Group Members - #1277
All 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 pupil-mobile-follower
.
Player
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.
Video Exporters
We improved the different video export plugins.
- There is a new
Eye Video Exporter
plugin (#1301). This plugin will export eye videos for your recording. Video Export Launcher
was renamed toWorld Video Exporter
to make its task clearer. By default, the exported video is no longer namedworld_viz.mp4
butworld.mp4
(#1295).- We implemented a new export management UI that is now used in
World Video Exporter
,Eye Video Exporter
, andiMotitions Exporter
. You can add as many export tasks as needed and they will all be processed in order (#1322).
Raw Data Exporter
@fneitzel added the possibility to individually turn off pupil and gaze exports in the Raw Data Exporter
(#1239).
The exported timestamp
, index
, and 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.
Annotation Plugin
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 annotation_player.pldata
.
Recordings created by former versions of Pupil will be updated to the new format.
Bugfixes
- 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
- Incorrect
Frame Publisher
world frame topic - #1276 Fixation Detector
bug 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
Developers notes
New dependencies
- pyav 0.4.2
- cysignal (on macOS and Linux only)
black
format
The entire code base has been changed to the black
format (#1343, #1344, #1346).
API changes
seek_control.trim_indeces_changed
notification - #1329set_min_calibration_confidence
notification - #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 protected] with a CV to start a discussion. We look forward to hearing from you.