---
title: "open(_:sessionLayer:options:)"
framework: usdkit
role: symbol
role_heading: Type Method
path: "usdkit/usdstage-4sfi1/open(_:sessionlayer:options:)"
---

# open(_:sessionLayer:options:)

Opens a stage using a file as the root layer.

## Declaration

```swift
static func open(_ path: FilePath, sessionLayer: USDLayer? = nil, options: USDStage.OpenOptions = []) throws -> USDStage
```

## Discussion

Discussion Recursively follows the composition rules described by the root layer, opening any files referenced by that layer and assembling a hierarchy of USDPrims from the combined contents of all layers. This function will not create a file if no file exists at path, unless OpenOptions.createNew is passed as an option. This function creates a new, independent stage object even if there is already a stage opened with path as its root layer. Parameters: path: A file to use as the root layer of the new stage. sessionLayer: A layer to use as a session layer. If nil, an anonymous layer will be created. options: Options that specify behavior related to opening a stage. Throws: An error if path does not exist or could not be read.

## See Also

### Opening a stage

- [open(rootLayer:sessionLayer:options:)](usdkit/usdstage-4sfi1/open(rootlayer:sessionlayer:options:).md)
- [open(_:loadingPayloads:)](usdkit/usdstage-4sfi1/open(_:loadingpayloads:).md)
- [USDStage.OpenOptions](usdkit/usdstage-4sfi1/openoptions.md)
- [USDStage.InitialLoadRule](usdkit/usdstage-4sfi1/initialloadrule.md)
