Get the Current Stage#

USD itself does not currently have a notion of a user session associated with a current stage. This is handled by higher-level facilities in USD applications such as usdviewApi in |usdview| and omni.usd in Omniverse Kit.

from pxr import Usd
import omni.usd

def get_current_stage() -> Usd.Stage:
    return omni.usd.get_context().get_stage()


#############
# Full Usage
#############
# Create a new USD stage through the UsdContext
success: bool = omni.usd.get_context().new_stage()

# Get the the current stage from the UsdContext
current_stage: Usd.Stage = get_current_stage()

# Check if the a new stage was created and a valid stage was returned
assert success
assert current_stage

usdview Python interpreter has a built-in object called usdviewApi that gives you access to the currently loaded Stage.

from pxr import Usd

stage: Usd.Stage = usdviewApi.stage