<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/HasPhysicsBody",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation14HasPhysicsBodyP"
  },
  "title" : "HasPhysicsBody"
}
-->

# HasPhysicsBody

An interface that enables physics simulations based on the rules of
Newtonian mechanics.

```
@MainActor @preconcurrency protocol HasPhysicsBody : HasCollision
```

## Topics

### Getting the component

[`var physicsBody: PhysicsBodyComponent?`](/documentation/RealityKit/HasPhysicsBody/physicsBody)

A component that is used for physics simulations of the model entity in
accordance with the laws of Newtonian mechanics.

### Adding and clearing forces

[`func addForce(SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/addForce(_:relativeTo:))

Applies a force to the physics body at its center of mass.

[`func addForce(SIMD3<Float>, at: SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/addForce(_:at:relativeTo:))

Applies a force to the physics body at the specified position.

[`func addTorque(SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/addTorque(_:relativeTo:))

Applies a torque to the physics body at its center of mass.

[`func clearForcesAndTorques()`](/documentation/RealityKit/HasPhysicsBody/clearForcesAndTorques())

Clears all forces previously added to the physics body.

### Applying impulses

[`func applyLinearImpulse(SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/applyLinearImpulse(_:relativeTo:))

Applies an impulse to the physics body at its center of mass.

[`func applyAngularImpulse(SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/applyAngularImpulse(_:relativeTo:))

Applies an angular (torque) impulse to the physics body at its center of
mass.

[`func applyImpulse(SIMD3<Float>, at: SIMD3<Float>, relativeTo: Entity?)`](/documentation/RealityKit/HasPhysicsBody/applyImpulse(_:at:relativeTo:))

Applies an impulse to the physics body at the specified position.

### Resetting physics simulations

[`func resetPhysicsTransform(recursive: Bool)`](/documentation/RealityKit/HasPhysicsBody/resetPhysicsTransform(recursive:))

Resets the position, orientation, and velocities of the simulated
physics body.

[`func resetPhysicsTransform(Transform, recursive: Bool)`](/documentation/RealityKit/HasPhysicsBody/resetPhysicsTransform(_:recursive:))

Resets the position and velocities of the simulated physics body.

## Relationships

### Inherited By

[`HasPhysics`](/documentation/RealityKit/HasPhysics)

### Inherits From

[`HasTransform`](/documentation/RealityKit/HasTransform)

[`HasCollision`](/documentation/RealityKit/HasCollision)

### Conforming Types

[`ModelEntity`](/documentation/RealityKit/ModelEntity)

---

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)