Skip to content

Recording Format

Recording Folders

The export contains one folder per recording following this naming scheme: <recording name>-<start of recording ID> The files included in every folder are described in the following.

info.json

This file contains meta-information on the recording.

FieldDescription
android_device_idUnique identifier of the Android device used as Invisible Companion.
android_device_modelModel name of the Companion device.
android_device_nameDevice name of the Companion device.
app_versionVersion of the Companion app used to make the recording.
calib_versionVersion of the offset correction used by the Companion app.
data_format_versionVersion of the data format used by the Companion app.
durationDuration of the recording in nanoseconds
gaze_offsetGaze offset applied to this recording using the offset correction. Values are in pixels.
glasses_serial_numberSerial number of the Pupil Invisible glasses used for the recording.
pipeline_versionVersion of the gaze estimation pipeline used by the Companion app.
recording_idUnique identifier of the recording.
scene_camera_serial_numberSerial number of the scene camera used for the recording.
start_timeTimestamp of when the recording was started. Given as UTC timestamp in nanoseconds.
template_dataData regarding the selected template for the recording as well as the response values.
wearer_idUnique identifier of the wearer selected for this recording.
wearer_nameName of the wearer selected for this recording.

Scene Video Scene video is contained in a file following the following naming scheme: <beginning of section ID>_<section start time>-<section end time>.mp4

scene_camera.json

This file contains the camera intrinsics of the used scene camera. The values are determined via calibration of every camera during manufacturing.

FieldDescription
camera_matrixThe camera matrix of the scene camera.
dist_coefsThe distortion coefficients of the scene camera. The order of the values is (k1, k2, p1, p2, k3, k4, k5, k6) following OpenCV's distortion model.
rotation_matrixExtrinsic rotation matrix describing how the scene camera is positioned in relation to the eye cameras. For more details please see section III-B of the white paper.
serial_numberThe serial number of the scene camera. This number can also be found on the back of the scene camera module. Please note that this number is different from the serial number of the frame, which can be found on the tip of the left temple of the Pupil Invisible frame.
versionThe version of the intrinsics data format.

world_timestamps.csv

This file contains the timestamps of every world video frame.

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
timestamp [ns]UTC timestamp in nanoseconds of the corresponding world frame.

events.csv

This file contains event data for all recordings. It contains both event annotations from Pupil Cloud and real-time recording events.

FieldDescription
recording idUnique identifier of the recording this event belongs to.
timestamp [ns]UTC timestamp of the event.
nameName of the event.
typeType of the event. Possible values: cloud, recording

gaze.csv

This file contains gaze data in world camera coordinates.

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
timestamp [ns]UTC timestamp in nanoseconds of the sample. Equal to the timestamp of the original gaze sample before mapping.
gaze x [px]Float value representing the x-coordinate of the mapped gaze point in world camera pixel coordinates.
gaze y [px]Same as "gaze x [px]" but for the y-coordinate.
wornThis value indicates whether the Pupil Invisible Glasses have been worn by a subject at this point in time. 1.0 indicates that it has been worn, while 0.0 indicates that it has not been worn. Added in version 2 of this enrichment.
fixation idIf this gaze sample belongs to a fixation event, this is the corresponding id of the fixation. Otherwise, this field is empty.
blink idIf this gaze samples belongs to a blink event, this is the corresponding id of the blink. Otherwise this field is empty.
azimuth [deg]The azimuth of the gaze ray in relation to the scene camera in degrees.
elevation [deg]The elevation of the gaze ray in relation to the scene camera in degrees.

fixations.csv

This file contains fixations detected in the gaze data stream. The corresponding gaze samples that belong to each fixation can be determined from the gaze.csv file using the fixation id field.

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
fixation idIdentifier of the fixation. The counter starts at the beginning of the recording.
start timestamp [ns]UTC timestamp in nanoseconds of the start of the fixation.
end timestamp [ns]UTC timestamp in nanoseconds of the end of the fixation.
duration [ms]Duration of the fixation in milliseconds.
fixation x [px]Float value representing the x-coordinate of the fixation in world camera pixel coordinates. This position is the average of all gaze samples within the fixation.
fixation y [px]Same as "fixation x [px]" but for the y-coordinate.
azimuth [deg]The azimuth of the gaze ray corresponding to the fixation location in relation to the scene camera in degrees.
elevation [deg]The elevation of the gaze ray corresponding to the fixation location in relation to the scene camera in degrees.

saccades.csv

This file contains saccades detected by the fixation detector.

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
saccade idIdentifier of the saccade. The counter starts at the beginning of the recording.
start timestamp [ns]UTC timestamp in nanoseconds of the start of the saccade.
end timestamp [ns]UTC timestamp in nanoseconds of the end of the saccade.
duration [ms]Duration of the saccade in milliseconds.
amplitude [px]Float value representing the amplitude of the saccade in world camera pixel coordinates.
amplitude [deg]Float value representing the amplitude of the saccade in degrees of visual angle.
mean velocity [px/s]Float value representing the mean velocity of the saccade in world camera pixel coordinates per second.
peak velocity [px/s]Float value representing the peak velocity of the saccade in world camera pixel coordinates per second.

This file contains blinks detected in the eye video. The corresponding gaze samples that belong to each blink can be determined from the gaze.csv file using the blink id field.

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
blink idIdentifier of the blink. The counter starts at the beginning of the recording.
start timestamp [ns]UTC timestamp in nanoseconds of the start of the blink.
end timestamp [ns]UTC timestamp in nanoseconds of the end of the blink.
duration [ms]Duration of the blink in milliseconds.

imu.csv

This file contains data recorded by the integrated IMU (inertial measurement unit).

FieldDescription
section idUnique identifier of the corresponding section.
recording idUnique identifier of the recording this sample belongs to.
timestamp [ns]UTC timestamp in nanoseconds of the sample.
gyro x [deg/s]
gyro y [deg/s]
gyro z [deg/s]
Rotation speed around x, y or z-axis respectively in degrees/s.
acceleration x [G]
acceleration y [G]
acceleration z [G]
Translational acceleration along the x, y or z-axis respectively in G. Note 1 G = 9.80665 m/s^2.
rollDrift-free estimation of the roll (head tilt from side to side) in degrees. The output range is -180 to +180 degrees. Added in version 2 of this enrichment.
pitchDrift-free estimation of the pitch (head tilt from front to back) in degrees. The output range is -180 to +180 degrees. Added in version 2 of this enrichment.