Skip to main content

MPS Output - Hand Tracking

Project Aria's Machine Perception Services (MPS) uses Project Aria's SLAM (mono scene) camera images to estimate the hand movement of the wearer.

Hand Tracking outputs are available for all recordings made with SLAM cameras and can be requested using the MPS CLI or Desktop Companion app. When research partners submit data for processing, the data is only used to serve MPS requests. Partner data is not made available to Meta researchers or Meta’s affiliates. Go to MPS Data Lifecycle for more details about how partner data is processed and stored.

Go to MPS Code Snippets for how to:

  • Load the hand tracking data (21 landmarks, wrist to device transformation, wrist and palm positions and normals)
  • Transform them to the world coordinate frame
  • Project them onto the SLAM or RGB images

Hand Tracking data can be visualized in Python or C++.

Hand Tracking Outputs

We currently provide hand tracking data. The file outputs are:

  • hand_tracking_results.csv - the coordinates of 21 hand landmark positions, wrist and palm normals in the device frame, and the full 6DoF transform from the hand frame (origin at wrist position) to the device frame
  • wrist_and_palm_poses.csv - the coordinates of the wrist and palm positions, and normal vectors indicating orientation, in the device frame
  • summary.json - high-level report on MPS hand tracking

hand_tracking_results.csv

hand_tracking_results.csv contains the following fields: The landmark positions, and wrist and palm normal vectors are given in the device frame in meters. The translation from the hand frame to the device frame is given in meters.

The 21 keypoints

The 21 landmarks are indexed from 0 to 20, representing key points on the hand. These landmarks correspond to specific joints and locations as follows:

Landmark IDDescription
0Thumb Fingertip
1Index Finger Fingertip
2Middle Finger Fingertip
3Ring Finger Fingertip
4Pinky Finger Fingertip
5Wrist Joint
6Thumb Intermediate
7Thumb Distal
8Index Finger Proximal
9Index Finger Intermediate
10Index Finger Distal
11Middle Finger Proximal
12Middle Finger Intermediate
13Middle Finger Distal
14Ring Finger Proximal
15Ring Finger Intermediate
16Ring Finger Distal
17Pinky Finger Proximal
18Pinky Finger Intermediate
19Pinky Finger Distal
20Palm Center
ColumnTypeDescription
tracking_timestamp_usintTimestamp, in microseconds, of the SLAM camera frame in device time domain. This is the same time domain in which the MPS trajectory outputs are reported, so these timestamps can be directly used to infer the device pose from the MPS trajectory output.
left_tracking_confidencefloatA value between 0.0 and 1.0 indicating the confidence in the detected left hand. A value of -1.0 indicates that the left hand data is missing for the frame, and the coordinates *_left_landmark_i_device, _left_device_wrist, _left_wrist_device and _left_palm_device should not be used.
tx_left_landmark_0_devicefloatX-coordinate of the left landmark 0 position given in the device frame in meters.
ty_left_landmark_0_devicefloatY-coordinate of the left landmark 0 position given in the device frame in meters.
tz_left_landmark_0_devicefloatZ-coordinate of the left landmark 0 position given in the device frame in meters.
tx_left_landmark_1_devicefloatX-coordinate of the left landmark 1 position given in the device frame in meters.
ty_left_landmark_1_devicefloatY-coordinate of the left landmark 1 position given in the device frame in meters.
tz_left_landmark_1_devicefloatZ-coordinate of the left landmark 1 position given in the device frame in meters.
tx_left_landmark_2_devicefloatX-coordinate of the left landmark 2 position given in the device frame in meters.
ty_left_landmark_2_devicefloatY-coordinate of the left landmark 2 position given in the device frame in meters.
tz_left_landmark_2_devicefloatZ-coordinate of the left landmark 2 position given in the device frame in meters.
tx_left_landmark_3_devicefloatX-coordinate of the left landmark 3 position given in the device frame in meters.
ty_left_landmark_3_devicefloatY-coordinate of the left landmark 3 position given in the device frame in meters.
tz_left_landmark_3_devicefloatZ-coordinate of the left landmark 3 position given in the device frame in meters.
tx_left_landmark_4_devicefloatX-coordinate of the left landmark 4 position given in the device frame in meters.
ty_left_landmark_4_devicefloatY-coordinate of the left landmark 4 position given in the device frame in meters.
tz_left_landmark_4_devicefloatZ-coordinate of the left landmark 4 position given in the device frame in meters.
tx_left_landmark_5_devicefloatX-coordinate of the left landmark 5 position given in the device frame in meters.
ty_left_landmark_5_devicefloatY-coordinate of the left landmark 5 position given in the device frame in meters.
tz_left_landmark_5_devicefloatZ-coordinate of the left landmark 5 position given in the device frame in meters.
tx_left_landmark_6_devicefloatX-coordinate of the left landmark 6 position given in the device frame in meters.
ty_left_landmark_6_devicefloatY-coordinate of the left landmark 6 position given in the device frame in meters.
tz_left_landmark_6_devicefloatZ-coordinate of the left landmark 6 position given in the device frame in meters.
tx_left_landmark_7_devicefloatX-coordinate of the left landmark 7 position given in the device frame in meters.
ty_left_landmark_7_devicefloatY-coordinate of the left landmark 7 position given in the device frame in meters.
tz_left_landmark_7_devicefloatZ-coordinate of the left landmark 7 position given in the device frame in meters.
tx_left_landmark_8_devicefloatX-coordinate of the left landmark 8 position given in the device frame in meters.
ty_left_landmark_8_devicefloatY-coordinate of the left landmark 8 position given in the device frame in meters.
tz_left_landmark_8_devicefloatZ-coordinate of the left landmark 8 position given in the device frame in meters.
tx_left_landmark_9_devicefloatX-coordinate of the left landmark 9 position given in the device frame in meters.
ty_left_landmark_9_devicefloatY-coordinate of the left landmark 9 position given in the device frame in meters.
tz_left_landmark_9_devicefloatZ-coordinate of the left landmark 9 position given in the device frame in meters.
tx_left_landmark_10_devicefloatX-coordinate of the left landmark 10 position given in the device frame in meters.
ty_left_landmark_10_devicefloatY-coordinate of the left landmark 10 position given in the device frame in meters.
tz_left_landmark_10_devicefloatZ-coordinate of the left landmark 10 position given in the device frame in meters.
tx_left_landmark_11_devicefloatX-coordinate of the left landmark 11 position given in the device frame in meters.
ty_left_landmark_11_devicefloatY-coordinate of the left landmark 11 position given in the device frame in meters.
tz_left_landmark_11_devicefloatZ-coordinate of the left landmark 11 position given in the device frame in meters.
tx_left_landmark_12_devicefloatX-coordinate of the left landmark 12 position given in the device frame in meters.
ty_left_landmark_12_devicefloatY-coordinate of the left landmark 12 position given in the device frame in meters.
tz_left_landmark_12_devicefloatZ-coordinate of the left landmark 12 position given in the device frame in meters.
tx_left_landmark_13_devicefloatX-coordinate of the left landmark 13 position given in the device frame in meters.
ty_left_landmark_13_devicefloatY-coordinate of the left landmark 13 position given in the device frame in meters.
tz_left_landmark_13_devicefloatZ-coordinate of the left landmark 13 position given in the device frame in meters.
tx_left_landmark_14_devicefloatX-coordinate of the left landmark 14 position given in the device frame in meters.
ty_left_landmark_14_devicefloatY-coordinate of the left landmark 14 position given in the device frame in meters.
tz_left_landmark_14_devicefloatZ-coordinate of the left landmark 14 position given in the device frame in meters.
tx_left_landmark_15_devicefloatX-coordinate of the left landmark 15 position given in the device frame in meters.
ty_left_landmark_15_devicefloatY-coordinate of the left landmark 15 position given in the device frame in meters.
tz_left_landmark_15_devicefloatZ-coordinate of the left landmark 15 position given in the device frame in meters.
tx_left_landmark_16_devicefloatX-coordinate of the left landmark 16 position given in the device frame in meters.
ty_left_landmark_16_devicefloatY-coordinate of the left landmark 16 position given in the device frame in meters.
tz_left_landmark_16_devicefloatZ-coordinate of the left landmark 16 position given in the device frame in meters.
tx_left_landmark_17_devicefloatX-coordinate of the left landmark 17 position given in the device frame in meters.
ty_left_landmark_17_devicefloatY-coordinate of the left landmark 17 position given in the device frame in meters.
tz_left_landmark_17_devicefloatZ-coordinate of the left landmark 17 position given in the device frame in meters.
tx_left_landmark_18_devicefloatX-coordinate of the left landmark 18 position given in the device frame in meters.
ty_left_landmark_18_devicefloatY-coordinate of the left landmark 18 position given in the device frame in meters.
tz_left_landmark_18_devicefloatZ-coordinate of the left landmark 18 position given in the device frame in meters.
tx_left_landmark_19_devicefloatX-coordinate of the left landmark 19 position given in the device frame in meters.
ty_left_landmark_19_devicefloatY-coordinate of the left landmark 19 position given in the device frame in meters.
tz_left_landmark_19_devicefloatZ-coordinate of the left landmark 19 position given in the device frame in meters.
tx_left_landmark_20_devicefloatX-coordinate of the left landmark 20 position given in the device frame in meters.
ty_left_landmark_20_devicefloatY-coordinate of the left landmark 20 position given in the device frame in meters.
tz_left_landmark_20_devicefloatZ-coordinate of the left landmark 20 position given in the device frame in meters.
right_tracking_confidencefloatA value between 0.0 and 1.0 indicating the confidence in the detected right hand. A value of -1.0 indicates that the right hand data is missing for the frame, and the coordinates *_right_landmark_i_device, _right_device_wrist, _right_wrist_device and _right_palm_device should not be used.
tx_right_landmark_0_devicefloatX-coordinate of the right landmark 0 position given in the device frame in meters.
ty_right_landmark_0_devicefloatY-coordinate of the right landmark 0 position given in the device frame in meters.
tz_right_landmark_0_devicefloatZ-coordinate of the right landmark 0 position given in the device frame in meters.
tx_right_landmark_1_devicefloatX-coordinate of the right landmark 1 position given in the device frame in meters.
ty_right_landmark_1_devicefloatY-coordinate of the right landmark 1 position given in the device frame in meters.
tz_right_landmark_1_devicefloatZ-coordinate of the right landmark 1 position given in the device frame in meters.
tx_right_landmark_2_devicefloatX-coordinate of the right landmark 2 position given in the device frame in meters.
ty_right_landmark_2_devicefloatY-coordinate of the right landmark 2 position given in the device frame in meters.
tz_right_landmark_2_devicefloatZ-coordinate of the right landmark 2 position given in the device frame in meters.
tx_right_landmark_3_devicefloatX-coordinate of the right landmark 3 position given in the device frame in meters.
ty_right_landmark_3_devicefloatY-coordinate of the right landmark 3 position given in the device frame in meters.
tz_right_landmark_3_devicefloatZ-coordinate of the right landmark 3 position given in the device frame in meters.
tx_right_landmark_4_devicefloatX-coordinate of the right landmark 4 position given in the device frame in meters.
ty_right_landmark_4_devicefloatY-coordinate of the right landmark 4 position given in the device frame in meters.
tz_right_landmark_4_devicefloatZ-coordinate of the right landmark 4 position given in the device frame in meters.
tx_right_landmark_5_devicefloatX-coordinate of the right landmark 5 position given in the device frame in meters.
ty_right_landmark_5_devicefloatY-coordinate of the right landmark 5 position given in the device frame in meters.
tz_right_landmark_5_devicefloatZ-coordinate of the right landmark 5 position given in the device frame in meters.
tx_right_landmark_6_devicefloatX-coordinate of the right landmark 6 position given in the device frame in meters.
ty_right_landmark_6_devicefloatY-coordinate of the right landmark 6 position given in the device frame in meters.
tz_right_landmark_6_devicefloatZ-coordinate of the right landmark 6 position given in the device frame in meters.
tx_right_landmark_7_devicefloatX-coordinate of the right landmark 7 position given in the device frame in meters.
ty_right_landmark_7_devicefloatY-coordinate of the right landmark 7 position given in the device frame in meters.
tz_right_landmark_7_devicefloatZ-coordinate of the right landmark 7 position given in the device frame in meters.
tx_right_landmark_8_devicefloatX-coordinate of the right landmark 8 position given in the device frame in meters.
ty_right_landmark_8_devicefloatY-coordinate of the right landmark 8 position given in the device frame in meters.
tz_right_landmark_8_devicefloatZ-coordinate of the right landmark 8 position given in the device frame in meters.
tx_right_landmark_9_devicefloatX-coordinate of the right landmark 9 position given in the device frame in meters.
ty_right_landmark_9_devicefloatY-coordinate of the right landmark 9 position given in the device frame in meters.
tz_right_landmark_9_devicefloatZ-coordinate of the right landmark 9 position given in the device frame in meters.
tx_right_landmark_10_devicefloatX-coordinate of the right landmark 10 position given in the device frame in meters.
ty_right_landmark_10_devicefloatY-coordinate of the right landmark 10 position given in the device frame in meters.
tz_right_landmark_10_devicefloatZ-coordinate of the right landmark 10 position given in the device frame in meters.
tx_right_landmark_11_devicefloatX-coordinate of the right landmark 11 position given in the device frame in meters.
ty_right_landmark_11_devicefloatY-coordinate of the right landmark 11 position given in the device frame in meters.
tz_right_landmark_11_devicefloatZ-coordinate of the right landmark 11 position given in the device frame in meters.
tx_right_landmark_12_devicefloatX-coordinate of the right landmark 12 position given in the device frame in meters.
ty_right_landmark_12_devicefloatY-coordinate of the right landmark 12 position given in the device frame in meters.
tz_right_landmark_12_devicefloatZ-coordinate of the right landmark 12 position given in the device frame in meters.
tx_right_landmark_13_devicefloatX-coordinate of the right landmark 13 position given in the device frame in meters.
ty_right_landmark_13_devicefloatY-coordinate of the right landmark 13 position given in the device frame in meters.
tz_right_landmark_13_devicefloatZ-coordinate of the right landmark 13 position given in the device frame in meters.
tx_right_landmark_14_devicefloatX-coordinate of the right landmark 14 position given in the device frame in meters.
ty_right_landmark_14_devicefloatY-coordinate of the right landmark 14 position given in the device frame in meters.
tz_right_landmark_14_devicefloatZ-coordinate of the right landmark 14 position given in the device frame in meters.
tx_right_landmark_15_devicefloatX-coordinate of the right landmark 15 position given in the device frame in meters.
ty_right_landmark_15_devicefloatY-coordinate of the right landmark 15 position given in the device frame in meters.
tz_right_landmark_15_devicefloatZ-coordinate of the right landmark 15 position given in the device frame in meters.
tx_right_landmark_16_devicefloatX-coordinate of the right landmark 16 position given in the device frame in meters.
ty_right_landmark_16_devicefloatY-coordinate of the right landmark 16 position given in the device frame in meters.
tz_right_landmark_16_devicefloatZ-coordinate of the right landmark 16 position given in the device frame in meters.
tx_right_landmark_17_devicefloatX-coordinate of the right landmark 17 position given in the device frame in meters.
ty_right_landmark_17_devicefloatY-coordinate of the right landmark 17 position given in the device frame in meters.
tz_right_landmark_17_devicefloatZ-coordinate of the right landmark 17 position given in the device frame in meters.
tx_right_landmark_18_devicefloatX-coordinate of the right landmark 18 position given in the device frame in meters.
ty_right_landmark_18_devicefloatY-coordinate of the right landmark 18 position given in the device frame in meters.
tz_right_landmark_18_devicefloatZ-coordinate of the right landmark 18 position given in the device frame in meters.
tx_right_landmark_19_devicefloatX-coordinate of the right landmark 19 position given in the device frame in meters.
ty_right_landmark_19_devicefloatY-coordinate of the right landmark 19 position given in the device frame in meters.
tz_right_landmark_19_devicefloatZ-coordinate of the right landmark 19 position given in the device frame in meters.
tx_right_landmark_20_devicefloatX-coordinate of the right landmark 20 position given in the device frame in meters.
ty_right_landmark_20_devicefloatY-coordinate of the right landmark 20 position given in the device frame in meters.
tz_right_landmark_20_devicefloatZ-coordinate of the left landmark 20 position given in the device frame in meters.
tx_left_device_wristfloatX-coordinate of the translation from the left hand frame (origin at wrist position) to the device frame in meters.
ty_left_device_wristfloatY-coordinate of the translation from the left hand frame (origin at wrist position) to the device frame in meters.
tz_left_device_wristfloatZ-coordinate of the translation from the left hand frame (origin at wrist position) to the device frame in meters.
qx_left_device_wristfloatX-component of the quaternion representing the rotation from the left hand frame (origin at wrist position) to the device frame.
qy_left_device_wristfloatY-component of the quaternion representing the rotation from the left hand frame (origin at wrist position) to the device frame.
qz_left_device_wristfloatZ-component of the quaternion representing the rotation from the left hand frame (origin at wrist position) to the device frame.
qw_left_device_wristfloatW-component of the quaternion representing the rotation from the left hand frame (origin at wrist position) to the device frame.
tx_right_device_wristfloatX-coordinate of the translation from the right hand frame (origin at wrist position) to the device frame in meters.
ty_right_device_wristfloatY-coordinate of the translation from the right hand frame (origin at wrist position) to the device frame in meters.
tz_right_device_wristfloatZ-coordinate of the translation from the right hand frame (origin at wrist position) to the device frame in meters.
qx_right_device_wristfloatX-component of the quaternion representing the rotation from the right hand frame (origin at wrist position) to the device frame.
qy_right_device_wristfloatY-component of the quaternion representing the rotation from the right hand frame (origin at wrist position) to the device frame.
qz_right_device_wristfloatZ-component of the quaternion representing the rotation from the right hand frame (origin at wrist position) to the device frame.
qw_right_device_wristfloatW-component of the quaternion representing the rotation from the right hand frame (origin at wrist position) to the device frame.
nx_left_palm_devicefloatX-coordinate of the left palm normal given in the device frame in meters.
ny_left_palm_devicefloatY-coordinate of the left palm normal given in the device frame in meters.
nz_left_palm_devicefloatZ-coordinate of the left palm normal given in the device frame in meters.
nx_left_wrist_devicefloatX-coordinate of the left wrist normal given in the device frame in meters.
ny_left_wrist_devicefloatY-coordinate of the left wrist normal given in the device frame in meters.
nz_left_wrist_devicefloatZ-coordinate of the left wrist normal given in the device frame in meters.
nx_right_palm_devicefloatX-coordinate of the right palm normal given in the device frame in meters.
ny_right_palm_devicefloatY-coordinate of the right palm normal given in the device frame in meters.
nz_right_palm_devicefloatZ-coordinate of the right palm normal given in the device frame in meters.
nx_right_wrist_devicefloatX-coordinate of the right wrist normal given in the device frame in meters.
ny_right_wrist_devicefloatY-coordinate of the right wrist normal given in the device frame in meters.
nz_right_wrist_devicefloatZ-coordinate of the right wrist normal given in the device frame in meters.

wrist_and_palm_poses.csv

wrist_and_palm_poses.csv contains the following fields: The wrist and palm poses and normal vectors are given in the device frame in meters.

ColumnTypeDescription
tracking_timestamp_usintTimestamp, in microseconds, of the SLAM camera frame in device time domain. This is the same time domain in which the MPS trajectory outputs are reported, so these timestamps can be directly used to infer the device pose from the MPS trajectory output.
left_tracking_confidencefloatA value between 0.0 and 1.0 indicating the confidence in the reported left wrist and palm positions. A value of -1.0 indicates that the left wrist and palm tracking data is missing for the frame, and the coordinates left_wrist_device_* and left_palm_device_* should not be used.
tx_left_wrist_devicefloatX-coordinate of the left wrist position given in the device frame in meters.
ty_left_wrist_devicefloatY-coordinate of the left wrist position given in the device frame in meters.
tz_left_wrist_devicefloatZ-coordinate of the left wrist position given in the device frame in meters.
tx_left_palm_devicefloatX-coordinate of the left palm position given in the device frame in meters.
ty_left_palm_devicefloatY-coordinate of the left palm position given in the device frame in meters.
tz_left_palm_devicefloatZ-coordinate of the left palm position given in the device frame in meters.
right_tracking_confidencefloatA value between 0.0 and 1.0 indicating the confidence in the reported right wrist and palm positions. A value of -1.0 indicates that the right wrist and palm tracking data is missing for the frame, and the coordinates right_wrist_device_* and right_palm_device_* should not be used.
tx_right_wrist_devicefloatX-coordinate of the right wrist position given in the device frame in meters.
ty_right_wrist_devicefloatY-coordinate of the right wrist position given in the device frame in meters.
tz_right_wrist_devicefloatZ-coordinate of the right wrist position given in the device frame in meters.
tx_right_palm_devicefloatX-coordinate of the right palm position given in the device frame in meters.
ty_right_palm_devicefloatY-coordinate of the right palm position given in the device frame in meters.
tz_right_palm_devicefloatZ-coordinate of the right palm position given in the device frame in meters.
nx_left_palm_devicefloatX-coordinate of the left palm normal given in the device frame in meters.
ny_left_palm_devicefloatY-coordinate of the left palm normal given in the device frame in meters.
nz_left_palm_devicefloatZ-coordinate of the left palm normal given in the device frame in meters.
nx_left_wrist_devicefloatX-coordinate of the left wrist normal given in the device frame in meters.
ny_left_wrist_devicefloatY-coordinate of the left wrist normal given in the device frame in meters.
nz_left_wrist_devicefloatZ-coordinate of the left wrist normal given in the device frame in meters.
nx_right_palm_devicefloatX-coordinate of the right palm normal given in the device frame in meters.
ny_right_palm_devicefloatY-coordinate of the right palm normal given in the device frame in meters.
nz_right_palm_devicefloatZ-coordinate of the right palm normal given in the device frame in meters.
nx_right_wrist_devicefloatX-coordinate of the right wrist normal given in the device frame in meters.
ny_right_wrist_devicefloatY-coordinate of the right wrist normal given in the device frame in meters.
nz_right_wrist_devicefloatZ-coordinate of the right wrist normal given in the device frame in meters.

summary.json

summary.json contains the Operator Summary, listed in MPS Basics, as well as the following fields:

FieldTypeDescription
mean_confidencefloatAverage left_tracking_confidence and right_tracking_confidence value for frames with valid results
total_framesintTotal number of frames
valid_frame_fractionfloatFraction of frames that have reported a valid tracking result