---
title: ARBodyAnchor
framework: arkit
role: symbol
role_heading: Class
path: arkit/arbodyanchor
---

# ARBodyAnchor

An anchor that tracks the position and movement of a human body in the rear-facing camera.

## Declaration

```swift
class ARBodyAnchor
```

## Overview

Overview 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 }

## Topics

### Interpreting 3D Motion

- [skeleton](arkit/arbodyanchor/skeleton.md)

### Getting Scale Information

- [estimatedScaleFactor](arkit/arbodyanchor/estimatedscalefactor.md)

## Relationships

### Inherits From

- [ARAnchor](arkit/aranchor.md)

### Conforms To

- [ARAnchorCopying](arkit/aranchorcopying.md)
- [ARTrackable](arkit/artrackable.md)
- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Body Position Tracking

- [Capturing Body Motion in 3D](arkit/capturing-body-motion-in-3d.md)
- [Rigging a Model for Motion Capture](arkit/rigging-a-model-for-motion-capture.md)
- [Validating a Model for Motion Capture](arkit/validating-a-model-for-motion-capture.md)
