# Unity USD Toolkit

> Source: https://aiwiki.ai/wiki/unity_usd_toolkit
> Updated: 2026-10-07
> Fact-checked: 2026-10-07
> Categories: Developer Tools, Physical AI, Software Development
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) - attribute to "AI Wiki (aiwiki.ai)"
> Cite as: AI Wiki. "Unity USD Toolkit." aiwiki.ai, 7 Oct 2026. https://aiwiki.ai/wiki/unity_usd_toolkit
> From AI Wiki (https://aiwiki.ai), the free encyclopedia of artificial intelligence. Reuse freely with attribution.

Unity USD Toolkit is an experimental package for Universal Scene Description (USD) scene interchange in Unity's Editor and built applications. It reads and writes `.usd`, `.usda`, `.usdc` and `.usdz` files for exchange with [NVIDIA Isaac Sim](https://aiwiki.ai/wiki/nvidia_isaac_sim) and [NVIDIA Omniverse](https://aiwiki.ai/wiki/nvidia_omniverse).[1]

The package identifier is `com.unity.usd-toolkit`. The repository's package manifest identifies version `0.7.2-exp.1`.[2]

Unity does not support the experimental package for production use, and any `0.x` release can change its API.[1]

## Scene exchange and simulation

USD represents a scene as a hierarchy of primitives, or prims, with attributes and relationships. Its composition system combines layers and referenced assets into a stage, and supports overrides without editing the original assets. A stage is the composed scene that an application reads or modifies.[3]

The toolkit exchanges static geometry, transform hierarchies, materials and textures. It does not supply a renderer or [simulation](https://aiwiki.ai/wiki/simulation) runtime, and does not author or run physics. Unity renders imported scenes using its own materials and render pipeline.[1]

This distinction matters for [robot learning](https://aiwiki.ai/wiki/robot_learning): scene interchange is separate from simulation dynamics and control. The Orbit research framework, for example, loads robot models from USD and separately manages physics, actuator models and controllers. Those are capabilities of the simulation framework, rather than of a USD interchange package.[14]

## Documented requirements

Documented requirements are Unity 6.4 or newer and:[4]

| Platform | Editor | Built player | Minimum operating system |
|---|---|---|---|
| Windows x64 | Yes | Yes | Windows 10 version 21H1 |
| macOS Intel and Apple silicon | Yes | Yes | macOS 12.0 |
| Linux x64 | Yes | Not yet documented as supported | Ubuntu 24.04 |
| Mobile, WebGL and consoles | No | No | Not supported |

Windows requires the Microsoft Visual C++ Redistributable. Linux requires glibc 2.38 or later and a libstdc++ providing `GLIBCXX_3.4.32`.[4]

The manifest declares `unity: 2023.1`, but the manual requires 6.4 or newer. The table follows documented support rather than plugin settings.[2][4]

## Import and export

| Data or operation | Documented behavior |
|---|---|
| Geometry | Export and import static meshes.[1] |
| Transforms | Export baked mesh transforms or preserve an `Xform` hierarchy.[1] |
| Materials | Exchange `UsdPreviewSurface` values and per-submesh bindings.[1] |
| Textures | Export PNG textures; import material textures, including packaged `.usdz` textures.[1] |
| Unity materials | Convert imported values to URP, HDRP or Built-in materials.[1] |

The importer exposes both synchronous and asynchronous entry points. `ImportAsync` reads scene data on a worker thread, then creates Unity objects on the main thread across multiple frames. It must be called from the main thread. `GetPreviewInfo` returns mesh, material, triangle and vertex counts alongside stage units and the up axis.[5]

| Import API | Purpose |
|---|---|
| `UsdImporter.GetPreviewInfo` | Inspect stage statistics before creating Unity objects |
| `UsdImporter.Import` | Import synchronously |
| `UsdImporter.ImportAsync` | Read in the background and build objects across frames |
| `UsdImporter.LoadImageFile` | Load a PNG or JPEG within the importer's image limits |

These methods are in the `Unity.USDToolkit` namespace.[5]

Import reports `upAxis` and `metersPerUnit`, but does not automatically rotate or scale the imported scene for those values. An Isaac Sim stage that is Z-up therefore needs a parent transform adjustment in Unity's Y-up world.[4]

The current native source also contains limited fallback conversion for Omniverse MDL shaders such as OmniPBR, OmniSurface and OmniGlass. This is not general MDL rendering: some properties are approximated, and separate OmniPBR metallic, roughness and ORM textures are not imported. The changelog places this work under Unreleased, so it should not be assumed to exist in every distributed binary.[12][8]

## USD Live Sync prototype

The Live Sync sample exports the initial geometry to `base_stage.usda`, then sends transform changes over loopback TCP as newline-delimited JSON. A joining client receives a snapshot; later delta messages contain changed objects. Clients can send transform edits back and save a checkpoint as a USD override layer. The channel synchronizes transforms, rather than continuously retransmitting geometry.[6]

Unity accepts incoming object edits only where a `UsdSyncNode` enables `AcceptsRemoteWrites`. Authentication is also required: each connection must present a token before receiving scene data. Traffic is unencrypted and the server binds only to loopback addresses. Software running under the same user account can read the session token, so authentication does not isolate the sample from that software.[6]

The Isaac Sim client guide targets Isaac Sim 6.0.1 on Windows, installed on the same machine. Its Kit extension mounts the Unity stage beneath a wrapper that handles the Y-up to Z-up conversion and stage units. Isaac Sim can send poses back to permitted Unity objects, including physics-driven poses after rigid bodies and colliders are configured in Isaac Sim. An object needs a single controlling application to avoid conflicting updates.[7]

The client includes graphical and standalone launchers, including a headless mode. Isaac Sim is obtained separately; the package does not redistribute NVIDIA software.[7]

## Limitations and file handling

The documented limitations include skinned meshes, animation, variant sets, payload streaming, MaterialX materials and physics schemas. Importing a mesh with a collider option is not equivalent to importing a complete robot physics description.[4]

The main-branch importer confines texture reads to the stage directory unless `AllowExternalAssetPaths` is explicitly enabled. It checks file and image dimensions before decoding and rejects paths that escape through links. These are defensive checks, not a guarantee that arbitrary USD files are harmless.[5]

The changelog distinguishes dated version entries from Unreleased changes. Version 0.7.0, dated September 12, 2026, introduced Live Sync; version 0.7.2, dated September 17, records import diagnostics, opacity handling and additional UV sets. Later security and native-payload work remains in the Unreleased section.[8]

## Installation and native implementation

Install through Package Manager from Git, a folder or tarball. Git installations require Git LFS to download native libraries; run `git lfs pull` after cloning.[1]

The managed API calls a native OpenUSD wrapper through P/Invoke. Each desktop platform has its own native binary. Changes to the wrapper's binary interface require rebuilding the corresponding platform payload, and an already-loaded Unity native plugin requires an Editor restart before a replacement takes effect.[11]

The third-party inventory identifies OpenUSD 26.05 and oneTBB 2020.3. Their licenses are separate from the package license: OpenUSD uses the Tomorrow Open Source Technology License 1.0, while oneTBB uses Apache License 2.0.[13]

## License

The toolkit is licensed under the Unity Companion License for Unity-dependent projects.[9] The license permits use in connection with content authored or distributed under a valid Unity engine license, and restricts use for competitive analysis or developing a competing product or service.[10]

## References

1. Unity Technologies. [Unity USD Toolkit README](https://github.com/Unity-Technologies/com.unity.usd-toolkit). Repository documentation, accessed October 8, 2026.
2. Unity Technologies. [Unity USD Toolkit package manifest](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/package.json). Version `0.7.2-exp.1`, accessed October 8, 2026.
3. Pixar Animation Studios. [Introduction to USD](https://openusd.org/release/intro.html). OpenUSD documentation, accessed October 8, 2026.
4. Unity Technologies. [Unity USD Toolkit User Manual](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/Documentation~/Unity%20USD%20Toolkit%20User%20Manual%20EN.md). English edition, accessed October 8, 2026.
5. Unity Technologies. [UsdImporter.cs](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/7edb722e8a3d1a5045ca20de564bbe813ac1e6da/Runtime/UsdImporter.cs). Managed importer source, accessed October 8, 2026.
6. Unity Technologies. [Live Sync Example guide](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/Samples/Live%20Sync%20Example/README.md). Accessed October 8, 2026.
7. Unity Technologies. [USD Live Sync Isaac Sim client guide](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/Samples/Live%20Sync%20Example/Tools~/isaacsim/README.md). Accessed October 8, 2026.
8. Unity Technologies. [Unity USD Toolkit changelog](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/CHANGELOG.md). Accessed October 8, 2026.
9. Unity Technologies. [Unity USD Toolkit license notice](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/LICENSE.md). Accessed October 8, 2026.
10. Unity Technologies. [Unity Companion License](https://unity.com/legal/licenses/unity-companion-license). Version 1.4, October 29, 2024.
11. Unity Technologies. [Building the Native Plugin](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/7edb722e8a3d1a5045ca20de564bbe813ac1e6da/Native~/README.md). Accessed October 8, 2026.
12. Unity Technologies. [UsdExporter.cpp](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/7edb722e8a3d1a5045ca20de564bbe813ac1e6da/Native~/src/UsdExporter.cpp). Native material conversion source, accessed October 8, 2026.
13. Unity Technologies. [Third-Party Notices](https://github.com/Unity-Technologies/com.unity.usd-toolkit/blob/main/ThirdPartyNotices.md). OpenUSD and oneTBB inventory, accessed October 8, 2026.
14. Mittal, M., et al. [Orbit: A Unified Simulation Framework for Interactive Robot Learning Environments](https://arxiv.org/html/2301.04195v2). IEEE Robotics and Automation Letters 8(6), 2023; arXiv version revised February 16, 2024. DOI: [10.1109/LRA.2023.3270034](https://doi.org/10.1109/LRA.2023.3270034).

