# SpatialGltfModelSource

Artifact: [androidx.xr.compose:compose](https://developer.android.com/jetpack/androidx/releases/xr-compose) [View Source](https://cs.android.com/search?q=file:androidx/xr/compose/subspace/SpatialGltfModel.kt+class:androidx.xr.compose.subspace.SpatialGltfModelSource) Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)


```
@ExperimentalSpatialGltfModelApi
interface SpatialGltfModelSource
```

<br />

*** ** * ** ***

Defines the source for a 3D model to be rendered by the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModel.composable#SpatialGltfModel(androidx.xr.compose.subspace.SpatialGltfModelState,androidx.xr.compose.subspace.layout.SubspaceModifier,kotlin.Function0)` composable.

Instances of `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` are created using `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#fromPath(java.nio.file.Path)` or `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#fromUri(android.net.Uri)`.

## Summary

| ### Public companion functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/ExperimentalSpatialGltfModelApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#fromPath(java.nio.file.Path)(path: https://developer.android.com/reference/java/nio/file/Path.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a `https://developer.android.com/reference/java/nio/file/Path.html` relative to the application's `assets/` folder. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/ExperimentalSpatialGltfModelApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#fromResource(android.content.Context,kotlin.Int)(context: https://developer.android.com/reference/android/content/Context.html, @https://developer.android.com/reference/kotlin/androidx/annotation/RawRes resId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a resource ID. |
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | `@https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/ExperimentalSpatialGltfModelApi https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#fromUri(android.net.Uri)(uri: https://developer.android.com/reference/android/net/Uri.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a content `https://developer.android.com/reference/android/net/Uri.html`. |

| ### Public functions |
|---|---|
| `suspend https://developer.android.com/reference/kotlin/androidx/xr/scenecore/GltfModel` | `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource#createModel(androidx.xr.runtime.Session)(session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session)` Creates a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/GltfModel` from the source. |

## Public companion functions

### fromPath

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
@ExperimentalSpatialGltfModelApi
fun fromPath(path: Path): SpatialGltfModelSource
```

Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a `https://developer.android.com/reference/java/nio/file/Path.html` relative to the application's `assets/` folder.

Currently, only binary `glTF` (`.glb`) files are supported.

| Parameters |
|---|---|
| `path: https://developer.android.com/reference/java/nio/file/Path.html` | The path of the binary `glTF` (`.glb`) model to be loaded, relative to the application's `assets/` folder. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that can be used with the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModel.composable#SpatialGltfModel(androidx.xr.compose.subspace.SpatialGltfModelState,androidx.xr.compose.subspace.layout.SubspaceModifier,kotlin.Function0)` composable. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource.Companion#fromPath(java.nio.file.Path)` is an absolute path. |

### fromResource

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
@ExperimentalSpatialGltfModelApi
fun fromResource(context: Context, @RawRes resId: Int): SpatialGltfModelSource
```

Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a resource ID.

Currently, only binary `glTF` (`.glb`) files are supported.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` | The context to use for loading the resource. |
| `@https://developer.android.com/reference/kotlin/androidx/annotation/RawRes resId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The resource ID of the binary `glTF` (`.glb`) model to be loaded. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that can be used with the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModel.composable#SpatialGltfModel(androidx.xr.compose.subspace.SpatialGltfModelState,androidx.xr.compose.subspace.layout.SubspaceModifier,kotlin.Function0)` composable. |

### fromUri

Added in [1.0.0-beta02](https://developer.android.com/jetpack/androidx/releases/xr-compose#1.0.0-beta02)

```
@ExperimentalSpatialGltfModelApi
fun fromUri(uri: Uri): SpatialGltfModelSource
```

Creates a `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that loads a `glTF` model from a content `https://developer.android.com/reference/android/net/Uri.html`.

This is suitable for loading models from various sources, such as network locations or local storage, that can be represented by a `Uri`.

Currently, only binary `glTF` (`.glb`) files are supported.

| Parameters |
|---|---|
| `uri: https://developer.android.com/reference/android/net/Uri.html` | The `Uri` for the binary `glTF` (`.glb`) model to be loaded. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` | A `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModelSource` that can be used with the `https://developer.android.com/reference/kotlin/androidx/xr/compose/subspace/SpatialGltfModel.composable#SpatialGltfModel(androidx.xr.compose.subspace.SpatialGltfModelState,androidx.xr.compose.subspace.layout.SubspaceModifier,kotlin.Function0)` composable. |

## Public functions

### createModel

```
suspend fun createModel(session: Session): GltfModel
```

Creates a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/GltfModel` from the source.

| Parameters |
|---|---|
| `session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` | The XR session to create the model in. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/GltfModel` | The created `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/GltfModel`. |