<!--
{
  "documentType" : "article",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/physics-force-effects",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Force effects"
}
-->

# Force effects

Control the movement of virtual objects with forces.

## Overview

Create various types of force effects, such as vortex, drag, and turbulence.
Add a force effect to a scene by creating a structure that adopts [`ForceEffectProtocol`](/documentation/RealityKit/ForceEffectProtocol),
and attaching it to an entity with a [`ForceEffectComponent`](/documentation/RealityKit/ForceEffectComponent).

## Topics

### Force effect components

[`struct ForceEffectComponent`](/documentation/RealityKit/ForceEffectComponent)

A component that defines the forces that affect an entity, including custom forces that you define.

[`struct ForceEffect`](/documentation/RealityKit/ForceEffect)

Defines a force effect’s system, and type specific properties.

### Built-in force effect types

[`struct ConstantForceEffect`](/documentation/RealityKit/ConstantForceEffect)

A force effect that exerts a constant force in a direction relative to the effect’s transform.

[`struct ConstantRadialForceEffect`](/documentation/RealityKit/ConstantRadialForceEffect)

A force effect that pulls objects toward its center with a constant strength.

[`struct DragForceEffect`](/documentation/RealityKit/DragForceEffect)

A force effect that slows bodies within its area of effect
with a force proportional to the body’s velocity.

[`struct RadialForceEffect`](/documentation/RealityKit/RadialForceEffect)

A force effect that pulls objects toward its center with a spring-like (distance dependent) force.

[`struct TurbulenceForceEffect`](/documentation/RealityKit/TurbulenceForceEffect)

A force effect that applies random forces
with magnitudes proportional to each body’s velocity.

[`struct VortexForceEffect`](/documentation/RealityKit/VortexForceEffect)

A force effect whose forces circulate around an axis centered at the origin of the effect.

### Force effect constraints

[`enum ForceEffectBounds`](/documentation/RealityKit/ForceEffectBounds)

The boundary options for a force effect.

[`struct SpatialForceFalloff`](/documentation/RealityKit/SpatialForceFalloff)

A type that modulates the force strength based on the distance of rigid bodies.

[`struct TimedForceFalloff`](/documentation/RealityKit/TimedForceFalloff)

A type that modulates the force strength based on how long the force effect has run.

### Custom forces

[`protocol ForceEffectProtocol`](/documentation/RealityKit/ForceEffectProtocol)

A protocol that defines a custom force effect.

[`enum ForceMode`](/documentation/RealityKit/ForceMode)

The options that control how physics system applies the forces.

[`struct ForceEffectParameters`](/documentation/RealityKit/ForceEffectParameters)

The force effect input data to the effect’s update handler or closure.

[`protocol ForceEffectBase`](/documentation/RealityKit/ForceEffectBase)

The base protocol for the wrapping force effect structure containing
common parameters for all force-effects.



---

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)