---
title: Model3DPhase
framework: realitykit
role: symbol
role_heading: Enumeration
path: realitykit/model3dphase
---

# Model3DPhase

The current phase of the asynchronous model loading operation.

## Declaration

```swift
enum Model3DPhase
```

## Overview

Overview When you create a Model3D instance with the init(url:transaction:content:) or Model3D/init(named:transaction:content:) initializers, you define the appearance of the view using a content closure. 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: 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

- [model](realitykit/model3dphase/model.md)
- [error](realitykit/model3dphase/error.md)

### Obtaining the result

- [Model3DPhase.empty](realitykit/model3dphase/empty.md)
- [Model3DPhase.success(_:)](realitykit/model3dphase/success(_:).md)
- [Model3DPhase.failure(_:)](realitykit/model3dphase/failure(_:).md)

## See Also

### SwiftUI 3D model presentation

- [Model3D](realitykit/model3d.md)
- [ResolvedModel3D](realitykit/resolvedmodel3d.md)
- [Model3DPlaceholderContent](realitykit/model3dplaceholdercontent.md)
- [Model3DAsset](realitykit/model3dasset.md)
