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

# init(from:configurations:content:placeholder:)

Loads and displays a modifiable model using the provided
`ConfigurationCatalog` and configuration choices using a custom placeholder
until the model loads.

```
nonisolated init<Model, Placeholder>(from catalog: Entity.ConfigurationCatalog, configurations: [String : String]? = nil, @ViewBuilder content: @escaping (ResolvedModel3D) -> Model, @ViewBuilder placeholder: @escaping () -> Placeholder) where Content == Model3DPlaceholderContent<Model, Placeholder>, Model : View, Placeholder : View
```

## Parameters

`catalog`

A collection of alternative representations for an entity.

`configurations`

A dictionary of configuration choices the initializer applies as it loads the entity,
mapping the ID of a configuration set to the ID of a configuration within that set.

`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(
    from: myConfigurationCatalog,
    configurations: ["vibe": "relaxed"] ) { 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(from:configurations:transaction:content:)`](/documentation/RealityKit/Model3D/init(from:configurations: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)