---
title: chainRootNode
framework: scenekit
role: symbol
role_heading: Instance Property
path: scenekit/scnikconstraint/chainrootnode
---

# chainRootNode

The parent node of the hierarchy affected by the constraint.

## Declaration

```swift
var chainRootNode: SCNNode { get }
```

## Discussion

Discussion The root node is the highest node in the hierarchy moved by the constraint. For example, a robot arm may have two arm segments and a hand connected to a body. The upper arm is a child node of the body, the lower arm is a child node of the upper arm, and the hand is a child node of the lower arm. In this case, the upper arm is the chain root node, because the body should not move to follow the hand.

## See Also

### Adjusting the Constraint’s Limits of Motion

- [maxAllowedRotationAngle(forJoint:)](scenekit/scnikconstraint/maxallowedrotationangle(forjoint:).md)
- [setMaxAllowedRotationAngle(_:forJoint:)](scenekit/scnikconstraint/setmaxallowedrotationangle(_:forjoint:).md)
