Apple Vision 2D body pose: the 19 joint names
19 joints · from VNHumanBodyPoseObservation.JointName · read 2026-10-17
Apple Vision 2D has 19 named joint constants, leftEar to rightAnkle, on VNHumanBodyPoseObservation.JointName; Apple gives them no numeric index. The sources tie it to Apple Vision VNDetectHumanBodyPoseRequest. All 19 names match a point in another scheme once lowercased with separators removed. Read from the sources on 2026-10-17.
Models that output it
- Apple Vision VNDetectHumanBodyPoseRequest · Apple Vision body poseEvidence: VNDetectHumanBodyPoseRequest says “The framework provides the detected body pose as a VNHumanBodyPoseObservation.” (source).
All 19 joints
Names are copied exactly from the static joint-name constants of VNHumanBodyPoseObservation.JointName. Apple gives these constants no numeric index, so the rows follow the order of Apple’s documentation. The last column says whether another scheme on this site spells the same name, by the crosswalk rule.
What the sources say about the output
Copied from the sources, whitespace collapsed.
- VNHumanBodyPoseObservation.JointName: The supported joint names for the body pose. (VNHumanBodyPoseObservation.JointName)
How this list was checked
- no joint constant is marked deprecated
- Apple files the constants under 4 topic groups: Head, Arms, Waist, Legs
- 19 of 19 names are shared with another scheme; the rest are listed as unmapped.
Apple lists the joint-name type as available from iOS 14.0, iPadOS 14.0, Mac Catalyst 14.0, macOS 11.0, tvOS 14.0 and visionOS 1.0.
Other schemes
Questions
What are the 19 Apple Vision 2D body pose joint names?
Apple documents leftEar, leftEye, rightEar, rightEye, neck, nose, leftShoulder, leftElbow, leftWrist, rightShoulder, rightElbow, rightWrist, root, leftHip, leftKnee, leftAnkle, rightHip, rightKnee and rightAnkle, filed under the topic groups Head, Arms, Waist and Legs. They are named constants with no numeric index.
Which pose models output Apple Vision 2D joints?
Apple Vision VNDetectHumanBodyPoseRequest: VNDetectHumanBodyPoseRequest says “The framework provides the detected body pose as a VNHumanBodyPoseObservation.” Only models a fetched source ties to this scheme are listed.
How do Apple Vision 2D joints map to other pose keypoint schemes?
By name only. 19 of the 19 share an identical name, once lowercased with separators removed, with a point in BlazePose 33, ML Kit 33, COCO 17, Halpe26, COCO-WholeBody 133, OpenPose BODY_25, OpenPose COCO 18 and Apple Vision 3D, so every one has a crosswalk row. A shared row means the names match, not that two models place the point in the same spot.
Sources
- VNHumanBodyPoseObservation.JointName · read 2026-10-17 · sha256 fe73c7fb2ae2
- VNDetectHumanBodyPoseRequest · read 2026-10-17 · sha256 8513a041dcf7
Generated by scripts/fetch-pose-keypoints.mjs and compiled by AIFitnessAPI. The sources remain the authority.