<!--
{
  "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/IKRig/Constraint",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation5IKRigV10ConstraintV"
  },
  "title" : "IKRig.Constraint"
}
-->

# IKRig.Constraint

A definition of a rig constraint.

```
struct Constraint
```

## Overview

Each constraint can have its position and orientation demands enabled individually.

## Topics

### Structures

[`struct ID`](/documentation/RealityKit/IKRig/Constraint/ID-swift.struct)

The identity type for a constraint in a rig.

[`struct IKOrientationDemand`](/documentation/RealityKit/IKRig/Constraint/IKOrientationDemand)

A definition of an orientational demand.

[`struct IKPositionDemand`](/documentation/RealityKit/IKRig/Constraint/IKPositionDemand)

A definition of a positional demand.

### Instance Properties

[`var id: IKRig.Constraint.ID`](/documentation/RealityKit/IKRig/Constraint/id-swift.property)

The identifier of the constraint.

[`var jointName: String`](/documentation/RealityKit/IKRig/Constraint/jointName)

The name of the constrained joint.

[`var name: String`](/documentation/RealityKit/IKRig/Constraint/name)

The name of the constraint.

[`var offset: Transform`](/documentation/RealityKit/IKRig/Constraint/offset)

A constraint target offset.

[`var orientationDemand: IKRig.Constraint.IKOrientationDemand?`](/documentation/RealityKit/IKRig/Constraint/orientationDemand)

The settings of the orientational demand.

[`var positionDemand: IKRig.Constraint.IKPositionDemand?`](/documentation/RealityKit/IKRig/Constraint/positionDemand)

The settings of the positional demand.

### Type Methods

[`static func lookAtAbsolute(named: String, on: String, lookingAlong: SIMD3<Float>, orientationWeight: SIMD3<Float>) -> IKRig.Constraint`](/documentation/RealityKit/IKRig/Constraint/lookAtAbsolute(named:on:lookingAlong:orientationWeight:))

Creates a constraint with only an orientational demand in absolute look-at mode.

[`static func lookAtAdditive(named: String, on: String, lookingAlong: SIMD3<Float>, orientationWeight: SIMD3<Float>) -> IKRig.Constraint`](/documentation/RealityKit/IKRig/Constraint/lookAtAdditive(named:on:lookingAlong:orientationWeight:))

Creates a constraint with only an orientational demand in additive look-at mode.

[`static func orient(named: String, on: String, orientationWeight: SIMD3<Float>) -> IKRig.Constraint`](/documentation/RealityKit/IKRig/Constraint/orient(named:on:orientationWeight:))

Creates a constraint with only an orientation demand.

[`static func parent(named: String, on: String, positionWeight: SIMD3<Float>, orientationWeight: SIMD3<Float>) -> IKRig.Constraint`](/documentation/RealityKit/IKRig/Constraint/parent(named:on:positionWeight:orientationWeight:))

Creates a constraint with both a positional and an orientational demands.

[`static func point(named: String, on: String, positionWeight: SIMD3<Float>) -> IKRig.Constraint`](/documentation/RealityKit/IKRig/Constraint/point(named:on:positionWeight:))

Creates a constraint with only a positional demand.

## Relationships

### Conforms To

[`Identifiable`](/documentation/Swift/Identifiable)

---

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)