<!--
{
  "documentType" : "article",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/animation",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Animation"
}
-->

# Animation

Create declarative animations that move elements of a scene in predetermined ways, or manage animations imported with external authoring tools.

## Topics

### First Steps

[Animating SceneKit Content](/documentation/SceneKit/animating-scenekit-content)

Learn about implicit animations, explicit animations, and actions, and when to choose each in your app.

### Actions

[`class SCNAction`](/documentation/SceneKit/SCNAction)

A simple, reusable animation that changes attributes of any node you attach it to.

[`protocol SCNActionable`](/documentation/SceneKit/SCNActionable)

Methods for running actions on nodes.

### Implicit Animation

[`class SCNTransaction`](/documentation/SceneKit/SCNTransaction)

A mechanism for creating implicit animations and combining scene graph changes into atomic updates.

### Explicit Animation

[`protocol SCNAnimatable`](/documentation/SceneKit/SCNAnimatable)

The common interface for attaching animations to nodes, geometries, materials, and other SceneKit objects.

[`class SCNAnimationEvent`](/documentation/SceneKit/SCNAnimationEvent)

A container for a closure, a block in Objective-C, to be executed at a specific time during playback of an animation.

[`class SCNAnimation`](/documentation/SceneKit/SCNAnimation-swift.class)

[`class SCNAnimationPlayer`](/documentation/SceneKit/SCNAnimationPlayer)

[`class SCNTimingFunction`](/documentation/SceneKit/SCNTimingFunction)

[`protocol SCNAnimationProtocol`](/documentation/SceneKit/SCNAnimationProtocol)

[`class SCNAnimation`](/documentation/SceneKit/SCNAnimation-swift.class)



---

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)