---
title: HasPhysicsBody
framework: realitykit
role: symbol
role_heading: Protocol
path: realitykit/hasphysicsbody
---

# HasPhysicsBody

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

## Declaration

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

## Topics

### Getting the component

- [physicsBody](realitykit/hasphysicsbody/physicsbody.md)

### Adding and clearing forces

- [addForce(_:relativeTo:)](realitykit/hasphysicsbody/addforce(_:relativeto:).md)
- [addForce(_:at:relativeTo:)](realitykit/hasphysicsbody/addforce(_:at:relativeto:).md)
- [addTorque(_:relativeTo:)](realitykit/hasphysicsbody/addtorque(_:relativeto:).md)
- [clearForcesAndTorques()](realitykit/hasphysicsbody/clearforcesandtorques().md)

### Applying impulses

- [applyLinearImpulse(_:relativeTo:)](realitykit/hasphysicsbody/applylinearimpulse(_:relativeto:).md)
- [applyAngularImpulse(_:relativeTo:)](realitykit/hasphysicsbody/applyangularimpulse(_:relativeto:).md)
- [applyImpulse(_:at:relativeTo:)](realitykit/hasphysicsbody/applyimpulse(_:at:relativeto:).md)

### Resetting physics simulations

- [resetPhysicsTransform(recursive:)](realitykit/hasphysicsbody/resetphysicstransform(recursive:).md)
- [resetPhysicsTransform(_:recursive:)](realitykit/hasphysicsbody/resetphysicstransform(_:recursive:).md)

## Relationships

### Inherits From

- [HasCollision](realitykit/hascollision.md)
- [HasTransform](realitykit/hastransform.md)

### Inherited By

- [HasPhysics](realitykit/hasphysics.md)

### Conforming Types

- [ModelEntity](realitykit/modelentity.md)

## See Also

### Entity compliance

- [HasPhysicsMotion](realitykit/hasphysicsmotion.md)
- [HasPhysics](realitykit/hasphysics.md)
