Select platform: [Android](https://developers.google.com/maps/documentation/maps-3d/android-sdk/add-3d-models.md.txt "View this page for the Android platform docs.") [iOS](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/add-3d-models.md.txt "View this page for the iOS platform docs.") [JavaScript](https://developers.google.com/maps/documentation/javascript/3d/models.md.txt "View this page for the JavaScript platform docs.")

<br />

You can add your own imported 3D model to a 3D map.

![A map view showing a 3D model](https://developers.google.com/static/maps/documentation/maps-3d/ios-sdk/images/3d-model.png)

The following code sample demonstrates how to add a 3D model and position it on
the map using the
[`Model`](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/Model.md.txt) struct.

```swift
struct SimpleModelDemo: View {
  @State var camera: Camera = .init(
    center: .init(latitude: 37.791376, longitude: -122.397571,  altitude: 240),
    heading: 288.0,
    tilt: 88.0,
    roll: 0.0,
    range: 1500)
    @State var balloonModel: Model = .init(
      position: LatLngAltitude(
        latitude: 37.7845812,
        longitude: -122.3660241,
        altitude: 585),
      url: URL(fileURLWithPath: fileUrl),
    altitudeMode: .relativeToMesh,
    scale: .init(x: 5, y: 5, z: 5),
    orientation: .init(heading: 0, tilt: 0, roll: 0)
  )
  var body: some View {
    Map(camera: $camera, mode: .satellite) {
        balloonModel
    }
  }
}
private let fileUrl = Bundle.main.url(forResource: "balloon", withExtension: "glb")!.path
```