LightUSD is a full-featured, dependency-free, lightweight USD library written in C++17. It reads and writes USDA, USDC, and USDZ without requiring the OpenUSD runtime, and includes MaterialX and USD Physics support.
LightUSD is designed for applications that need USD to be compact, portable, and fast: high-performance 3D interchange and DCC tools, render and asset pipelines, generative AI, and Physical AI systems that connect scene understanding with simulation and robotics. The same core runs across desktop, mobile, WebAssembly, and sandboxed environments, with explicit resource limits for untrusted assets.
Python:
python -m pip install lightusdimport lightusd
stage = lightusd.load("scene.usdz")
for prim in lightusd.traverse(stage):
print(prim.type_name, prim.name)See python/README.md for Python usage. WebAssembly and JavaScript packages live under web/.
LightUSD requires a C++17 compiler and normally uses CMake:
cmake -S . -B build_ninja -G Ninja \
-DLIGHTUSD_BUILD_TESTS=ON -DLIGHTUSD_BUILD_EXAMPLES=ON
cmake --build build_ninja
ctest --test-dir build_ninja --output-on-failureSee doc/build-and-examples.md for integration, build options, and examples.
- Documentation index
- API and schema status
- MaterialX
- USD Physics
- Composition
- Python bindings
- Testing
- Release and CI
Use USDLoadOptions::max_memory_limit_in_mb for unknown inputs. For hostile or
internet-sourced assets, also isolate loading in a sandboxed process or WASI
environment.
LightUSD is primarily licensed under Apache 2.0. Some helper code uses MIT or similarly permissive licenses. See LICENSE.3rdparty for third-party notices.