jrouwe/JoltPhysics
GamesA C++ rigid-body physics and collision library that game and VR developers embed to simulate objects, characters, vehicles and soft bodies.
Jolt Physics is a C++17 rigid-body physics and collision-detection library intended to be linked into games and VR simulations rather than run as a standalone application. Its authoring rationale is that games do more than simulate physics: world sections load and unload on background threads, collision queries run alongside simulation, and newly created bodies do not auto-wake. The README names Horizon Forbidden West and Death Stranding 2 as users, and the project's background is documented in a GDC 2022 talk.
What you get
The library covers continuous collision detection for spheres, boxes, capsules, cylinders, convex hulls, compound shapes, triangle meshes and height-field terrain, plus a wide set of constraints (hinge, slider, cone, gear, pulley, 6 DOF and others) with motors. On top of that it ships higher-level game systems: animated ragdolls with hard/soft keying, capsule-based character controllers in rigid-body and virtual variants, wheeled/tracked/motorcycle vehicles, soft bodies with edge, bend, rod, volume and tether constraints, water buoyancy, and a GPU strand-based hair simulation. An optional double-precision mode targets large worlds.
How it fits a workflow
A typical integration starts from the HelloWorld example or the CMake FetchContent sample repository, then uses the sample application and its per-feature tests to learn each system and the PerformanceTest application to collect timing data. Simulations are deterministic, so the author suggests replicating inputs to a remote client instead of state — but the linked Deterministic Simulation section defines the limits of that guarantee. JoltViewer can replay recorded .jor files from the debug renderer.
Requirements and constraints
- Compiler/toolchain: Visual Studio 2022+, Clang 16+ or GCC 12+, C++17, standard template library only, no RTTI and no exceptions. On x86/x64 the baseline is SSE2, with optional SSE4.1/4.2, AVX, AVX2 or AVX512 builds; ARM64 uses NEON (Armv8-A).
- Operating systems: Windows x86/x64/ARM64, Linux (several architectures), FreeBSD, Android, macOS and iOS; WebAssembly goes through the separate JoltPhysics.js project. The Samples, JoltViewer and TestFramework run on Windows, macOS and Linux. The console platform requires a private build environment and header under NDA, so it is not a public path.
- Scope: the author explicitly says real-world rigid-body behavior is approximated, so the library is mainly for games or VR rather than engineering-accurate simulation. Thread-visibility behavior and deterministic limits are documented, not universally guaranteed.
- Upgrades: release notes and an API-changes document exist because the API evolves; check them before bumping a version.
- License and contributions: MIT-licensed code. Non-trivial pull requests require agreeing to a Contributor Agreement and signing the CLA; PRs are squashed on merge.
Bindings exist for C, C#, Java/Kotlin, JavaScript, Rust, Python, Zig, Jai and Nim, and integrations exist for Godot, Source Engine and Unreal, so non-C++ teams can reach the engine through community projects rather than through the core library.
HotRepo's take
The repository was observed once on the GitHub Trending daily board, at 11,948 stars with +81 that day on 2026-10-30; a single recorded day does not show whether interest is rising, fading or sustained.
Written by AI from the project's README, updated October 30, 2026. The project's own docs are the source of truth.