An object that tracks the movement in 3D space of a body that ARKit recognizes in the camera feed.


class ARBodyAnchor : ARAnchor


This ARAnchor subclass tracks the movement of a single person. You enable body tracking by running your session using ARBodyTrackingConfiguration.

When ARKit recognizes a person in the back camera feed, it calls your delegate's session(_:didAdd:) function with ARBodyAnchor. A body anchor's transform position defines the world position of the body's hip joint.

You can also check within the frame's anchors for a body that ARKit is tracking.

Place a Skeleton on a Surface

Because a body anchor's origin maps to the hip joint, you calculate the current offset of the feet to the hip to place the body's skeleton on a surface. By passing the foot joint index to jointModelTransforms, you get the foot's offset from skeleton's origin.

static var hipToFootOffset: Float {
    // Get an index for a foot. 
    let footIndex = ARSkeletonDefinition.defaultBody3D.index(forJointName: .leftFoot)
    // Get the foot's world-space offset from the hip. 
    let footTransform = ARSkeletonDefinition.defaultBody3D.neutralBodySkeleton3D!.jointModelTransforms[footIndex]
    // Return the height by getting just the y-value. 
    let distanceFromHipOnY = abs(footTransform.columns.3.y) 
    return distanceFromHipOnY


Interpreting 3D Motion

var skeleton: ARSkeleton3D

The tracked body in 3D.

class ARSkeleton3D

The skeleton of a human body that ARKit tracks in 3D space.

class ARSkeleton

The interface for the skeleton of a tracked body.

Getting Screen Position

class ARBody2D

The screen-space representation of a person ARKit recognizes in the camera feed.

Getting Scale Information

var estimatedScaleFactor: CGFloat

A factor that relates the body's default height with the height ARKit estimates at runtime.


Inherits From

See Also


Occluding Virtual Content with People

Cover your app’s virtual content with people that ARKit perceives in the camera feed.

Capturing Body Motion in 3D

Track a person in the physical environment and visualize their motion by applying the same body movements to a virtual character.

class ARBodyTrackingConfiguration

A configuration you use to track a person's motion in 3D space.

class ARBody2D

The screen-space representation of a person ARKit recognizes in the camera feed.