---
title: ARSkeletonDefinition
framework: arkit
role: symbol
role_heading: Class
path: arkit/arskeletondefinition
---

# ARSkeletonDefinition

The hierarchy of joints and their names.

## Declaration

```swift
class ARSkeletonDefinition
```

## Overview

Overview A skeleton definition establishes the relationship of joints that make up a 3D or 2D body’s skeleton, in which joints connect to other joints to compose a single skeleton in a parent-child hierarchy. Use parentIndices to identify the hierarchy for a given skeleton definition. ARKit names particular joints that are crucial to body tracking. You can access named joints by calling indexForJointName: and passing in one of the available jointNames identifiers.

## Topics

### Locating in the Physical Environment

- [neutralBodySkeleton3D](arkit/arskeletondefinition/neutralbodyskeleton3d.md)
- [defaultBody3D](arkit/arskeletondefinition/defaultbody3d.md)

### Locating in Screen Space

- [defaultBody2D](arkit/arskeletondefinition/defaultbody2d.md)

### Getting Joint Information

- [jointNames](arkit/arskeletondefinition/jointnames.md)
- [jointCount](arkit/arskeletondefinition/jointcount.md)
- [index(for:)](arkit/arskeletondefinition/index(for:).md)
- [parentIndices](arkit/arskeletondefinition/parentindices-u2u9.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Body Data

- [Capturing Body Motion in 3D](arkit/capturing-body-motion-in-3d.md)
- [ARBody2D](arkit/arbody2d.md)
- [ARSkeleton3D](arkit/arskeleton3d.md)
- [ARSkeleton2D](arkit/arskeleton2d.md)
- [ARSkeleton](arkit/arskeleton.md)
