<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/Model3DPhase",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "RealityKit",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:19_RealityKit_SwiftUI12Model3DPhaseO"
  },
  "title" : "Model3DPhase"
}
-->

# Model3DPhase

The current phase of the asynchronous model loading operation.

```
enum Model3DPhase
```

## Overview

When you create a [`Model3D`](/documentation/RealityKit/Model3D) instance with the
[`init(url:transaction:content:)`](/documentation/RealityKit/Model3D/init(url:transaction:content:)) or
`Model3D/init(named:transaction:content:)` initializers, you define
the appearance of the view using a `content` closure. [`Model3D`](/documentation/RealityKit/Model3D) calls the
closure with a phase value at different points during the load operation
to indicate the current state. Use the phase to decide what to display.
For example, you can display the loaded model if it exists, a view that
indicates an error, or a placeholder:

```swift
let url = URL(string: "https://example.com/robot.usdz")!
Model3D(url: url) { phase in
    if let model = phase.model {
        model // Displays the loaded model.
    } else if phase.error != nil {
        Color.red // Indicates an error.
    } else {
        ProgressView()
    }
}
```

## Topics

### Accessing the model

[`var model: ResolvedModel3D?`](/documentation/RealityKit/Model3DPhase/model)

The loaded model, if any.

[`var error: (any Error)?`](/documentation/RealityKit/Model3DPhase/error)

The error that occurred when attempting to load a model, if any.

### Obtaining the result

[`case empty`](/documentation/RealityKit/Model3DPhase/empty)

No model is loaded.

[`case success(ResolvedModel3D)`](/documentation/RealityKit/Model3DPhase/success(_:))

A model has successfully loaded.

[`case failure(any Error)`](/documentation/RealityKit/Model3DPhase/failure(_:))

An model failed to load with an error.



---

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)