Skip to content

OpenUSD Physics Plugins

CI License: Apache-2.0

Backend-neutral physics runtime components for OpenUSD-based applications.

OpenUSD describes the physical world; usd-physics-plugins makes that world executable without exposing a backend SDK to its consumers.

standard UsdPhysics -> physicsUsd (read-only snapshots)
                                |
                                v
                           physicsCore <--- physicsJolt
                                |               |
                                +--- state <----+
                                     |
                       consumer scheduling and display

physicsCore owns neutral handles, descriptors, world and query contracts. physicsJolt owns solver execution. The optional physicsUsd reads standard USD declarations without owning a runtime world. The host owns rebuilding, path/handle mappings and presentation; usd-avatar-runtime coordinates shared world stepping across avatars. MMD/VRM repositories own source-format interpretation and bone coupling. See the consumer boundaries.

See the capability matrix for exact implementation limits and evidence, and the current roadmap for unfinished work.

Build and use

A minimal plain-CMake build uses the repository's platform preset:

cmake --preset windows-msvc
cmake --build --preset windows-release
ctest --preset windows-release

On Linux, use linux-ninja to configure and linux-release to build and test. Make the selected SDK prefixes discoverable through CMAKE_PREFIX_PATH. The optional USD adapter is selected with -DUSDPHYSICS_BUILD_USD=ON. Dependency versions belong in DEPENDENCIES.md; build options and OpenStrata intents belong in WORKSPACE.md.

Installed packages can be consumed from a clean prefix:

find_package(physicsCore CONFIG REQUIRED)
find_package(physicsJolt CONFIG REQUIRED)
target_link_libraries(my_runtime PRIVATE physicsCore::physicsCore physicsJolt::physicsJolt)

See the package contract for installation, optional SDK dependencies and compatibility requirements.

Documentation and community

Start with the documentation index and design policy. Verification evidence lives in dated reports; release rules live in the release schema.

Contributions are welcome; read CONTRIBUTING.md and the Code of Conduct. Use the bug report or feature request template. Report vulnerabilities privately following SECURITY.md.

Licensed under the Apache License 2.0. External dependencies retain their own licenses.

Releases

Packages

Contributors

Languages