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

# Constraints

Automatically adjust the position or orientation of a node based on specified rules.

## Discussion

By modifying the results of animation, physics, and other scene graph changes, constraints make it easier manage dynamic behaviors and relationships between elements of your scene.

For example, when developing a game, you might want a camera node to always point at the player character, even as that character moves around the scene. Instead of directly reorienting the camera node each time you move the character, you can add a look-at constraint to the camera node to make SceneKit reorient the camera automatically.

## Topics

### First Steps

[`SCNConstraint`](/documentation/SceneKit/SCNConstraint)

The abstract superclass for objects that automatically adjust the position, rotation, or scale of a node based on specified rules.

### Orientation Constraints

[`SCNBillboardConstraint`](/documentation/SceneKit/SCNBillboardConstraint)

A constraint that orients a node to always point toward the current camera.

[`SCNLookAtConstraint`](/documentation/SceneKit/SCNLookAtConstraint)

A constraint that orients a node to always point toward a specified other node.

### Position Constraints

[`SCNDistanceConstraint`](/documentation/SceneKit/SCNDistanceConstraint)

[`SCNAvoidOccluderConstraint`](/documentation/SceneKit/SCNAvoidOccluderConstraint)

### Motion Constraints

[`SCNAccelerationConstraint`](/documentation/SceneKit/SCNAccelerationConstraint)

[`SCNSliderConstraint`](/documentation/SceneKit/SCNSliderConstraint)

### Synchronization

[`SCNReplicatorConstraint`](/documentation/SceneKit/SCNReplicatorConstraint)

### Inverse Kinematics

[`SCNIKConstraint`](/documentation/SceneKit/SCNIKConstraint)

A constraint that applies inverse kinematics to make a chain of nodes “reach” toward a target point.

### Customization

[`SCNTransformConstraint`](/documentation/SceneKit/SCNTransformConstraint)

A constraint that runs a specified closure, block in Objective-C, to compute a new transform (position, rotation, and scale) for each node that the constraint affects.



---

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)