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

# init(named:bundle:content:placeholder:)

Loads and displays a modifiable model by name, by searching
through the specified <doc://com.apple.documentation/documentation/Foundation/Bundle>, using a custom placeholder
until the model loads.

```
nonisolated init<Model, Placeholder>(named name: String, bundle: Bundle? = nil, @ViewBuilder content: @escaping (ResolvedModel3D) -> Model, @ViewBuilder placeholder: @escaping () -> Placeholder) where Content == Model3DPlaceholderContent<Model, Placeholder>, Model : View, Placeholder : View
```

## Parameters

`name`

The name of the USD or Reality file to display.

`bundle`

The Bundle used to look up the model by name. If not
provided, defaults to the app’s main bundle.

`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`](/documentation/RealityKit/Model3D) displays the placeholder view that
you specify. When the load operation completes successfully, SwiftUI
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
Model3D(named: "Robot-Drummer") { model in
    model.resizable()
} placeholder: {
    Color.green
}
```

If the load operation fails, [`Model3D`](/documentation/RealityKit/Model3D) continues to display the
placeholder. To be able to display a different view on a load error,
use the  [`init(named:bundle:transaction:content:)`](/documentation/RealityKit/Model3D/init(named:bundle: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)