<!--
{
  "availability" : [
    "iOS: 8.0.0 - 26.0.0",
    "iPadOS: 8.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.8.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/SCNIKConstraint/targetPosition",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SCNIKConstraint(py)targetPosition"
  },
  "title" : "targetPosition"
}
-->

# targetPosition

The desired position for the constrained node, in the scene’s world coordinate space. Animatable.

```
var targetPosition: SCNVector3 { get set }
```

## Discussion

When you set this property, SceneKit attempts to move the end effector node (the node whose [`constraints`](/documentation/SceneKit/SCNNode/constraints) property references the constraint) to this position. SceneKit moves this node toward the target point by rotating it relative to its parent node (and rotating its parent and ancestor nodes, up the chain ending with the `chainRoot` node) until the node is at the target position or until it is as close to the target position as possible given the rotational limits of each joint in the chain.

Typically, you animate changes to this property’s value, creating an animation that shows the chain of nodes moving toward the new target position. See [Animating SceneKit Content](/documentation/SceneKit/animating-scenekit-content).

---

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)