Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.

Data produced by the SmartEye module

SmartEye’s UDP interface carries several packet types; this module recognizes only its gaze packet (type 4) and silently ignores everything else, with nothing logged for a packet it discards. See Troubleshooting if nothing ever arrives.

Entity

A single entity per session, name SmartEye_Data, with a randomly generated id assigned once when the module starts (not derived from anything SmartEye reports, and not stable across restarts).

Gaze and pupillometry

Populated on GazeComponent: gaze_origin, left_gaze_origin, right_gaze_origin, gaze_direction (+ quality), left_gaze_direction (+ quality), right_gaze_direction (+ quality), combined_eye_position, left_eye_position, right_eye_position, left_eye_occluded, right_eye_occluded, has_glasses, blink. Gaze origin and direction prefer SmartEye’s filtered values when present, falling back to the raw values only when a filtered one is missing - not averaged or blended, one or the other per field.

Populated on PupillometryDataComponent: combined, left and right eyelid openness (+ quality), and combined, left and right pupil diameter (+ quality) - also preferring SmartEye’s filtered values over raw when both are present.

Head pose

Populated on SpatialComponent.pose, from SmartEye’s head position plus orientation. Orientation prefers SmartEye’s own quaternion output; if that field is absent but the Rodrigues rotation vector is present, this module converts that vector to a quaternion itself. With neither available, the pose still publishes with an identity (no rotation) orientation rather than being omitted - a stationary-looking head orientation in the data is not necessarily a real one if SmartEye stopped sending head rotation.

Drowsiness, emotion and speaking activity

Published as plain BiometricReading entries on BiometricSensorComponent, named directly after SmartEye’s own field names - not translated into descriptive names:

Reading name(s)What it is
Drowsiness9Level, Drowsiness9LevelQ, Drowsiness9LevelStatusSmartEye’s own 9-level drowsiness estimate and its quality/status codes
Anger, Disgust, Happiness, Neutral, Sadness, Surprise, Valence, Mood (each with a matching ...Q quality reading)SmartEye’s facial-emotion estimates
DominantEmotion, DominantEmotionQAn enumerated code for SmartEye’s own classification of the dominant emotion. This module does not decode which number means which emotion - that mapping is defined by SmartEye’s own documentation, not reproduced here
Speaking, SpeakingQWhether SmartEye’s software detected the wearer speaking, published as 1.0/0.0

Every one of these is published whenever SmartEye sends it - there is no setting to publish gaze without also publishing the emotion or drowsiness readings. See Overview for the privacy implication.

What SmartEye provides but this module never publishes

SmartEye’s packet also carries head Euler angles (heading, pitch, roll) and nose/up/left-ear direction vectors, saccade and fixation event flags, a face-mask detection flag, a numeric tracking-state code, glasses-detection quality, eye-occlusion quality scores, frame rate, and a profile id. All of these are either parsed and then discarded, or not read from the packet at all - none reach any published component or reading in this version.

Opens your browser's print dialog. Choose "Save as PDF" as the destination.