OpenUSD scene access from Mojo through the official C++ SDK: composition, typed values, animation, meshes, transforms, materials, cameras and physics schema data. Returned values own their storage; mesh snapshots offer borrowed views.
With Pixi:
pixi init my-project
cd my-project
pixi workspace channel add https://repo.prefix.dev/modular-community https://conda.modular.com/max
pixi add usd-mojoSave as example.mojo and provide a scene containing /World/Mesh:
from usd_mojo import Stage
def main() raises:
var stage = Stage("scene.usda")
var mesh = stage.mesh("/World/Mesh")
print(mesh.point_count(), mesh.face_count())pixi run usd-mojo-build example.mojo -o example
pixi run ./exampleVersion 0.1.0 packages target Mojo 1.1.0, OpenUSD 26.08 and macOS ARM64. Pixi installs the SDK and CPython library; the Mojo API makes no Python calls. Source checks also cover 1.2.0.dev2026100905; Linux is experimental.
Stages are move-only and cannot be accessed concurrently. Units, matrices and time codes retain USD conventions. Rendering, physics execution, subdivision evaluation and USDZ packaging are outside the API. Referenced assets and plugins use the SDK resolver; scenes are not sandboxed.
API · Compatibility ·
Checks · Benchmarks.
From source: pixi install --locked, then pixi run -e default check;
see development.
Library and bridge: MIT. OpenUSD: TOST 1.0, with unchanged license and notices. See dependencies.