---
title: SCNSceneSource
framework: scenekit
role: symbol
role_heading: Class
path: scenekit/scnscenesource
---

# SCNSceneSource

An object that manages the data-reading tasks associated with loading scene contents from a file or data.

## Declaration

```swift
class SCNSceneSource
```

## Mentioned in

Animating SceneKit Content

## Overview

Overview You can also use a scene source to examine the contents of a scene file or to selectively extract certain elements of a scene without keeping the entire scene and all the assets it contains. SceneKit can read scene contents from a file in a supported format, or from an NSData object holding the contents of such a file. Supported formats include the following:  |  |   |  |   |  |   |  |   |  |  When you include a scene file in DAE or Alembic format in your Xcode project, Xcode automatically converts the file to SceneKit’s compressed scene format for use in the built app. The compressed file retains its original .dae or .abc extension. The SCNSceneSource class can also load SceneKit archive files, which you create in the Xcode scene editor or programmatically by using the NSKeyedArchiver class to serialize an SCNScene object and the scene graph it contains. note: For best results, place scene files that ship in your app bundle in a folder with the .scnassets extension, and place image files referenced as textures from those scenes in an Asset Catalog. Xcode then optimizes the scene and texture resources for best performance on each target device, and prepares your texture resources for delivery features such as App Thinning and On-Demand Resources.

## Topics

### Creating a Scene Source

- [init(url:options:)](scenekit/scnscenesource/init(url:options:)-rw0y.md)
- [init(data:options:)](scenekit/scnscenesource/init(data:options:).md)

### Loading a Complete Scene

- [scene(options:statusHandler:)](scenekit/scnscenesource/scene(options:statushandler:).md)
- [scene(options:)](scenekit/scnscenesource/scene(options:).md)

### Loading and Inspecting Scene Elements

- [identifiersOfEntries(withClass:)](scenekit/scnscenesource/identifiersofentries(withclass:).md)
- [entryWithIdentifier(_:withClass:)](scenekit/scnscenesource/entrywithidentifier(_:withclass:).md)
- [entries(passingTest:)](scenekit/scnscenesource/entries(passingtest:).md)

### Getting Information about the Scene

- [url](scenekit/scnscenesource/url.md)
- [data](scenekit/scnscenesource/data.md)
- [property(forKey:)](scenekit/scnscenesource/property(forkey:).md)

### Constants

- [SCNSceneSource.LoadingOption](scenekit/scnscenesource/loadingoption.md)
- [Scene Source Properties](scenekit/scene-source-properties.md)
- [Contributor Keys](scenekit/contributor-keys.md)
- [Unit Dictionary Keys](scenekit/unit-dictionary-keys.md)
- [Scene Loading Error Keys](scenekit/scene-loading-error-keys.md)
- [Scene File Consistency Error Keys](scenekit/scene-file-consistency-error-keys.md)
- [Scene File Consistency Check Error Codes](scenekit/1573761-scene-file-consistency-check-err.md)
- [SCNSceneSourceStatusHandler](scenekit/scnscenesourcestatushandler.md)
- [SCNSceneSourceStatus](scenekit/scnscenesourcestatus.md)

### Initializers

- [init(URL:options:)](scenekit/scnscenesource/init(url:options:)-46vsm.md)
- [init(URL:options:)](scenekit/scnscenesource/init(url:options:)-5xjuk.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
