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

# RealityKit

Simulate and render 3D content for use in your augmented reality apps.

## Overview

RealityKit provides high-performance 3D simulation and rendering capabilities you can use to create apps with 3D or augmented reality (AR) for iOS, iPadOS, macOS, tvOS, and visionOS.
RealityKit is an AR-first 3D framework that leverages <doc://com.apple.documentation/documentation/ARKit>
to seamlessly integrate virtual objects into the real world.

![A screenshot that shows a virtual warehouse environment set up as a theater. A movie showing on a big floating screen features a wheeled robot rolling through an outdoor environment.](images/com.apple.RealityKit/realityKit-hero-image.png)

Use RealityKit’s rich functionality to create compelling augmented reality (AR) experiences:

- Create and import full RealityKit scenes with models, animations, and Spatial Audio by using Reality Composer Pro for visionOS.
- Build or modify scenes at runtime by adding 3D models, shape primitives, and sounds from code.
- Have virtual objects interact with objects in the real world.
- Animate objects, both manually and with physics simulations.
- Respond to user input and changes in a person’s surroundings.
- Synchronize across devices and use SharePlay to enable group AR experiences.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/visionOS/understanding-the-realitykit-modular-architecture>

[Building an immersive experience with RealityKit](/documentation/RealityKit/building-an-immersive-experience-with-realitykit)

Use systems and postprocessing effects to create a realistic underwater scene.

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

An element of a RealityKit scene to which you attach components that provide
appearance and behavior characteristics for the entity.

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

A representation of a geometry or a behavior that you apply to an entity.

### Presentation

[Views and attachments](/documentation/RealityKit/presentation-views-and-attachments)

Bring RealityKit content into your app with views and renderers.

[Presentation UI](/documentation/RealityKit/presentation-user-interface)

Control your app’s content and how people can interact with it.

[Postprocessing effects](/documentation/RealityKit/postprocessing-effects)

Create special rendering effects for your RealityKit scenes.

### Scene management and logic

[Scenes](/documentation/RealityKit/ecs-scenes)

The context that holds all RealityKit entities.

[Systems](/documentation/RealityKit/ecs-systems)

Apply behaviors and physical effects to the entities in a RealityKit scene.

[Events](/documentation/RealityKit/ecs-events)

Respond to things happening in your RealityKit scene by subscribing to specific event types.

[Entity actions](/documentation/RealityKit/ecs-entity-actions)

Create simple, reusable actions that can change your app state, RealityKit scene, or animate an entity.

### Asset creation

  <doc://com.apple.documentation/documentation/RealityComposerPro>

  <doc://com.apple.documentation/documentation/visionOS/swift-splash>

  <doc://com.apple.documentation/documentation/visionOS/diorama>

[Presenting an artist’s scene](/documentation/RealityKit/presenting-an-artists-scene)

Display a scene from Reality Composer Pro in visionOS.

[Object capture](/documentation/RealityKit/realitykit-object-capture)

Create 3D objects from a series of photographs using photogrammetry.

  <doc://com.apple.documentation/documentation/USD>

[Composing interactive 3D content with RealityKit and Reality Composer Pro](/documentation/RealityKit/composing-interactive-3d-content-with-realitykit-and-reality-composer-pro)

Build an interactive scene using an animation timeline.

### Scene content

  <doc://com.apple.documentation/documentation/visionOS/World>

  <doc://com.apple.documentation/documentation/visionOS/enabling-video-reflections-in-an-immersive-environment>

[Creating a spatial drawing app with RealityKit](/documentation/RealityKit/creating-a-spatial-drawing-app-with-realitykit)

Use low-level mesh and texture APIs to achieve fast updates to a person’s brush
strokes by integrating RealityKit with ARKit and SwiftUI.

[Generating interactive geometry with RealityKit](/documentation/RealityKit/generating-interactive-geometry-with-realitykit)

Create an interactive mesh with low-level mesh and low-level texture.

[Combining 2D and 3D views in an immersive app](/documentation/RealityKit/combining-2d-and-3d-views-in-an-immersive-app)

Use attachments to place 2D content relative to 3D content in your visionOS app.

[Transforming RealityKit entities using gestures](/documentation/RealityKit/transforming-realitykit-entities-with-gestures)

Build a RealityKit component to support standard visionOS gestures on any entity.

[Responding to gestures on an entity](/documentation/RealityKit/responding-to-gestures-on-an-entity)

Respond to gestures performed on RealityKit entities using input target and collision components.

[Models and meshes](/documentation/RealityKit/scene-content-models-and-meshes)

Display virtual objects in your scene with mesh-based models.

[Materials, textures, and shaders](/documentation/RealityKit/scene-content-materials-and-shaders)

Apply textures to the surface of your scene’s 3D objects to give each object a unique appearance.

[Anchors](/documentation/RealityKit/scene-content-anchors)

Lock virtual content to the real world.

[Lights and cameras](/documentation/RealityKit/scene-content-lights-and-cameras)

Control the lighting and point of view for a scene.

[Content synchronization](/documentation/RealityKit/scene-content-content-synchronization)

Synchronize the contents of entities locally or across the network.

[Audio](/documentation/RealityKit/scene-content-audio)

Create personalized and realistic spatial audio experiences.

[Videos](/documentation/RealityKit/scene-content-videos)

Present videos in your RealityKit experiences.

[Images](/documentation/RealityKit/scene-content-images)

Present images and spatial scenes in your RealityKit experiences.

[Mesh deformation](/documentation/RealityKit/scene-content-mesh-deformation)

Reshape and animate the geometry of 3D models at runtime, applying skinning, blend shapes, and subdivision so surfaces bend, flex, and deform as a scene plays.

[Global illumination and baked lighting](/documentation/RealityKit/scene-content-global-illumination)

Light scenes realistically by precomputing illumination so surfaces pick up bounced color and ambient detail without recalculating it every frame.

### Game development

[Gaming sample code projects](/documentation/RealityKit/game-development-sample-code)

Explore a collection of projects relating to game development.

[Entity animations](/documentation/RealityKit/game-development-entity-animations)

Dynamically move, rotate, and scale entities at runtime.

[Character control, skeletons, and inverse kinematics](/documentation/RealityKit/game-development-character-skeletons)

Direct the movements and animation of models.

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

A component that defines which areas of a navigation mesh an entity can move through.

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

A component that provides the navigation meshes an entity uses to find paths through a scene.

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

An interface for finding paths for an entity moving across a scene’s navigation mesh.

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

A representation of a scene’s navigable surfaces that the system uses to compute paths.

### Physics simulation

[Collision detection](/documentation/RealityKit/physics-collision-detection)

Determine when entities collide with each other or the environment.

[Simulations and motion](/documentation/RealityKit/physics-simulations-and-motion)

Simulate physical interactions between entities or systems.

[Force effects](/documentation/RealityKit/physics-force-effects)

Control the movement of virtual objects with forces.

[Physics joints and pins](/documentation/RealityKit/physics-joints-and-pins)

Simulate joint physics that connect virtual objects.

[Cloth simulation](/documentation/RealityKit/physics-cloth-simulation)

Add fabric, soft surfaces, and draping materials that bend, fold, and respond to forces and contact in your 3D scenes.

### Performance improvements

[Improving the Performance of a RealityKit App](/documentation/RealityKit/improving-the-performance-of-a-realitykit-app)

Measure CPU and GPU utilization to find ways to improve your app’s performance.

[Reducing GPU Utilization in Your RealityKit App](/documentation/RealityKit/reducing-gpu-utilization-in-your-realitykit-app)

Prevent the GPU from limiting your app’s frame rate by reducing the complexity of
your render.

[Reducing CPU Utilization in Your RealityKit App](/documentation/RealityKit/reducing-cpu-utilization-in-your-realitykit-app)

Target specific CPU metrics with adjustments to your app and its content.

[Construct an immersive environment for visionOS](/documentation/RealityKit/construct-an-immersive-environment-for-visionOS)

Build efficient custom worlds for your app.

[Passing Metal command objects around your application](/documentation/RealityKit/passing-metal-command-objects-around-your-application)

Build a system that creates and passes Metal command objects to entities dispatching Metal compute shaders.

[Low-level rendering](/documentation/RealityKit/low-level-rendering)

Drive the renderer directly to build custom drawing pipelines, meshes, buffers, and textures when higher-level rendering does not give you the control you need.



---

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)
