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

# open(rootLayer:sessionLayer:options:)

Opens a stage rooted at a given layer.

## Declaration

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

## Discussion

Discussion Recursively follows the composition rules described by rootLayer, opening any files referenced by the layer and assembling a hierarchy of USDPrims from the combined contents of all layers. This function creates a new, independent stage object even if there is already a stage opened with rootLayer as its root layer. Parameters: rootLayer: 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.

## See Also

### Opening a stage

- [open(_:sessionLayer:options:)](usdkit/usdstage-4sfi1/open(_: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)
