---
title: RealityKit updates
framework: updates
role: article
role_heading: Article
path: updates/realitykit
---

# RealityKit updates

Learn about important changes in RealityKit.

## Overview

Overview Browse notable changes in RealityKit. June 2025 General Create hover effect groups to indicate entities that need to highlight together using HoverEffectComponent.GroupID. Present popovers from volumes using PresentationComponent. Manually create instances of entities using MeshInstancesComponent. Animate entities implicitly using animate(_:body:completion:). Create and modify attachments in a more streamlined fashion using ViewAttachmentComponent. Make entities render behind real-world objects based on depth using EnvironmentBlendingComponent. Implement post-processing effects using RealityViewPostProcessEffect and PostProcessEffectContext. Attach models together using attach(_:to:). TextureResource now supports AVIF textures and entities you load from USDZ files that contain AVIF textures using init(named:in:)  so they render correctly. Load entities from Data objects using init(from:configurations:). Image presentation Generate spatial scenes using ImagePresentationComponent.Spatial3DImage and present them (along with 2D images and spatial photos) using ImagePresentationComponent. Receive notifications related to presenting images using ImagePresentationEvents. Use Model3DAsset with Model3D to play animations in Model3D Views. ARKit integration Receive updates about ARKit anchors directly in RealityKit using AnchorStateEvents and SceneEvents.TrackingStateUpdate. SwiftUI integration Use SwiftUI implicit animations using the Animation modifier with RealityKit entities and components. Keep SwiftUI state in sync with RealityKit state using Entity.Observable. Present USD variants in Model3D using Entity.ConfigurationCatalog. Specify the frame sizing and alignment option for RealityView using RealityViewLayoutOption. Video presentation Play spatial video, 180°, 360°, wide-FOV APMP video, and Apple Immersive Video in  VideoPlayerComponent. Retrieve the loading status when playing video using VideoPlayerComponent with currentRenderingStatus. Receive notifications when a video stops playing due to a comfort violation using VideoPlayerEvents.VideoComfortMitigationDidOccur. Gestures and entity interaction Implement six degree of freedom (6DOF) gestures for manipulating entities using ManipulationComponent. Leverage GestureComponent to support gestures on individual entities. June 2024 General Add artistic lights and shadows to your visionOS app with PointLightComponent, DirectionalLightComponent, SpotLightComponent, and DynamicLightShadowComponent. Manage spatial tracking in your app with the SpatialTrackingSession. Use LowLevelMesh to efficiently bring your mesh data to RealityKit, including custom vertex attributes, formats, and layouts. Use an AnimationLibraryComponent to store associated animations with an entity that plays the animations. Create an  IKComponent to animate a skeletal model with an inverse kinematics IKComponent.Solver. Use an AudioLibraryComponent to store associated audio with an entity that plays the audio. Stream generated audio in real time with AudioGeneratorController. Manage the meshes on your blend shapes with BlendShapeWeightsComponent. Create more engaging sound effects by configuring rolloff and reverb with the SpatialAudioComponent. Customize hover effects when using HoverEffectComponent, such as spotlight styles, highlight styles, or shader-backed hover effects for additional control over hover behaviors. Models and materials Optimize material initialization with a CustomMaterial.Program to compile backing shaders. Use init(from:) to efficiently update custom texture data in RealityKit, including custom pixel formats, texture types, swizzle, and texture usage. Create cube texture resources with init(cubeFromEquirectangular:named:quality:faceSize:options:) or init(cubeFromImage:named:options:). Access additional texture resource properties: arrayLength, depth, pixelFormat, and textureType. Add a clearcoat to your custom materials with clearcoatNormal. Physics and simulations Apply force effects on rigid bodies with the ForceEffect. Create simulations such as hinge and slider joints with PhysicsJoint. Immersive environments Anchor dockable videos by attaching a DockingRegionComponent to your entity. Peer into other immersive worlds with a PortalComponent, and allow objects from that world to enter yours with PortalCrossingComponent. Further control the lighting in your environment with EnvironmentLightingConfigurationComponent.

## See Also

### Technology and frameworks

- [Accelerate updates](updates/accelerate.md)
- [Accessibility updates](updates/accessibility.md)
- [ActivityKit updates](updates/activitykit.md)
- [AdAttributionKit Updates](updates/adattributionkit.md)
- [App Clips updates](updates/appclips.md)
- [App Intents updates](updates/appintents.md)
- [AppKit updates](updates/appkit.md)
- [Apple Intelligence updates](updates/apple-intelligence.md)
- [AppleMapsServerAPI Updates](updates/applemapsserverapi.md)
- [Apple Pencil updates](updates/applepencil.md)
- [ARKit updates](updates/arkit.md)
- [Audio Toolbox updates](updates/audiotoolbox.md)
- [AuthenticationServices updates](updates/authenticationservices.md)
- [AVFAudio updates](updates/avfaudio.md)
- [AVFoundation updates](updates/avfoundation.md)
