Reality Composer Pro 3 introduces Animation Graph, Behavior Trees, Script Graph, Navigation Mesh, and Compute Graph โ a suite of visual, node-based editors that let you author character animation, autonomous AI routines, interactivity, pathfinding, and particle effects entirely within the editor without writing code.
โข Animation Graph enables runtime blend spaces, motion warping, and IK-driven character animation controlled by boolean/float parameters you set from Swift at runtime
โข Behavior Trees let you define multi-step autonomous routines (patrol, react, interact) visually and test them live in the editor without a build cycle
โข Script Graph adds event-driven no-code interactivity (tap gestures, parameter setters, subgraphs) so your whole team can prototype spatial experiences quickly
Shows how to load a RealityKit scene containing an Animation Graph and toggle the 'isWalking' boolean parameter from Swift to drive character animation state transitions at runtime.
import SwiftUI
import RealityKit
// MARK: - ContentView
struct AlchemistView: View {
@State private var isWalking = false
@State private var rootEntity: Entity?
var body: some View {
RealityView { content in
// Load the scene built in Reality Composer Pro 3
// The scene contains an entity named "Alchemist" with an
// AnimationGraphComponent whose graph has an isWalking Bool input.
if let scene = try? await Entity(named: "AlchemyArea", in: .main) {
content.add(scene)
rootEntity = scene
}
} update: { content in
// Propagate the Swift-side toggle into the Animation Graph parameter
guard let alchemist = rootEntity?.findEntity(named: "Alchemist") else { return }
setAnimationGraphParameter(
entity: alchemist,
key: "isWalking",
value: isWalking
)
}
.overlay(alignment: .bottom) {
Button(isWalking ? "Stop Walking" : "Start Walking") {
isWalking.toggle()
}
.buttonStyle(.borderedProminent)
.padding()
}
}
// MARK: - Animation Graph Parameter Helper
private func setAnimationGraphParameter(
entity: Entity,
key: String,
value: Bool
) {
// AnimationGraphComponent is the RealityKit runtime component
// that corresponds to the Animation Graph authored in RCP3.
guard var graphComponent = entity.components[AnimationGraphComponent.self] else {
return
}
// Set the named Bool parameter; the key must match the
// parameter name defined in the Animation Graph Inputs Inspector.
graphComponent.setParameter(key, value: .bool(value))
entity.components[AnimationGraphComponent.self] = graphComponent
}
}
// MARK: - Preview
#Preview {
AlchemistView()
}Liquid Glass is Apple's new material and visual design language introduced in iOS 27, bringing translucent, refractive glass-like surfaces to system and custom UI elements. It replaces the frosted vibrancy aesthetic with a more dynamic, depth-aware material that responds to content beneath it.
PaperKit is Apple's full-featured canvas framework โ previously internal-only โ now publicly available in iOS/macOS/visionOS 27. It powers the drawing and markup experience in Notes, Preview, and Freeform, giving developers access to a complete pencil, shapes, images, and text canvas with a rich data model.
Xcode 27 introduces a fully customizable toolbar and theme system, untitled scratch projects, coding agent integration directly in the editor, and the new Device Hub for evaluating apps across simulators and physical devices side-by-side.
In-depth guide
RealityKit & USDKit in iOS 27 โAnimation Graph runtime parameters are set via RealityKit entity parameter APIs โ ensure parameter names exactly match the string keys defined in the graph or transitions will silently fail. Behavior Tree preconditions are evaluated top-to-bottom; deleting a Wait node without adding a Bool precondition will cause the sequence to advance immediately. Compute Graph particle effects authored in RCP3 are not editable at runtime via public API in the first beta.
Reality Composer Pro 3 runs on macOS; Navigation Mesh and live immersive preview require Apple Vision Pro hardware for full testing
iOS 27 introduces new SwiftUI drag and drop APIs including reorderable, reorderContainer, dragContainer, and configuration modifiers that enable reordering within and across collections, multi-item drag, and fine-grained control over how data is transferred during drag and drop operations.