Backend-neutral physics runtime components for OpenUSD-based applications.
OpenUSD describes the physical world;
usd-physics-pluginsmakes 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.
A minimal plain-CMake build uses the repository's platform preset:
cmake --preset windows-msvc
cmake --build --preset windows-release
ctest --preset windows-releaseOn 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.
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.