<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 18.0.0 -",
    "macOS: 15.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/SkeletalPosesComponent",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation22SkeletalPosesComponentV"
  },
  "title" : "SkeletalPosesComponent"
}
-->

# SkeletalPosesComponent

A component that exposes the collection of named animation skeletal poses.

```
struct SkeletalPosesComponent
```

## Overview

Use the entity’s skeletal poses to either read the pose evaluated from animations bound to
[`BindTarget.jointTransforms`](/documentation/RealityKit/BindTarget/jointTransforms) and [`BindTarget.skeletalPose(_:)`](/documentation/RealityKit/BindTarget/skeletalPose(_:)),
or write your own pose to animate the skeletal model.

### Setting updated value on an entity

When an updated [`SkeletalPose`](/documentation/RealityKit/SkeletalPose) is set on an entity as part of this component, these rules are followed:

- If [`jointNames`](/documentation/RealityKit/SkeletalPose/jointNames) is reordered, following animation updated will match the new order.
- If [`jointTransforms`](/documentation/RealityKit/SkeletalPose/jointTransforms) contains more elements than [`jointNames`](/documentation/RealityKit/SkeletalPose/jointNames),
  the extra transformations are ignored.
- If [`jointTransforms`](/documentation/RealityKit/SkeletalPose/jointTransforms) contains less elements than [`jointNames`](/documentation/RealityKit/SkeletalPose/jointNames),
  the extra joint transformations are not updated.

You can use [`poses`](/documentation/RealityKit/SkeletalPosesComponent/poses)’s [`default`](/documentation/RealityKit/SkeletalPoseSet/default) accessor for the same skeletal pose as exposed by
[`jointNames`](/documentation/RealityKit/HasModel/jointNames) and [`jointTransforms`](/documentation/RealityKit/HasModel/jointTransforms). The access trough the component allows
the reordering, addition and removal of joints from the default pose.

## Topics

### Initializers

[`init(poses: [SkeletalPose])`](/documentation/RealityKit/SkeletalPosesComponent/init(poses:))

Creates a component value with the provided poses.

### Instance Properties

[`var poses: SkeletalPoseSet`](/documentation/RealityKit/SkeletalPosesComponent/poses)

The collection of the skeletal poses for a single entity.

## Relationships

### Conforms To

[`Component`](/documentation/RealityKit/Component)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)