<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/Model3D/init(url:content:placeholder:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "RealityKit",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:19_RealityKit_SwiftUI7Model3DV3url7content11placeholderACyAA0E19DPlaceholderContentVyqd__qd_0_GG10Foundation3URLV_qd__AA08ResolvedE1DVcqd_0_yctcAIRsz0cD04ViewRd__ApQRd_0_r0_lufc"
  },
  "title" : "init(url:content:placeholder:)"
}
-->

# init(url:content:placeholder:)

Loads and displays a modifiable model from the specified URL using
a custom placeholder until the model loads.

```
nonisolated init<Model, Placeholder>(url: URL, @ViewBuilder content: @escaping (ResolvedModel3D) -> Model, @ViewBuilder placeholder: @escaping () -> Placeholder) where Content == Model3DPlaceholderContent<Model, Placeholder>, Model : View, Placeholder : View
```

## Parameters

`url`

The URL of the model to display.

`content`

A closure that takes the loaded model as an input, and
returns the view to show. You can return the model directly, or
modify it as needed before returning it.

`placeholder`

A closure that returns the view to show until the
load operation completes successfully.

## Discussion

Until the model loads, `Model3D` displays the placeholder view that
you specify. When the load operation completes successfully, `Model3D`
updates the view to show content that you specify, which you
create using the loaded model. For example, you can show a green
placeholder, followed by a scaled version of the loaded model:

```swift
let url = URL(string: "https://example.com/robot.usdz")!
Model3D(url: url) { model in
    model.resizable()
} placeholder: {
    Color.green
}
```

If the load operation fails, `Model3D` continues to display the
placeholder. To be able to display a different view on a load error,
use the [`init(url:transaction:content:)`](/documentation/RealityKit/Model3D/init(url:transaction:content:)) initializer instead.

---

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)