Jitter Physics 2

April 28, 2026 ยท View on GitHub

GitHub Actions Workflow Status Nuget Discord

Jitter Physics 2, the evolution of Jitter Physics, is an impulse-based dynamics engine with a semi-implicit Euler integrator. It is a fast, simple, and dependency-free engine written in C# with a clear and user-friendly API.

๐Ÿ“ฆ The official NuGet package (changelog) can be found here, the double precision version here.


โ–ถ๏ธ Try the interactive demo and explore the docs at jitterphysics.com.

There is also a tiny demo available for the Godot engine ๐ŸŽฎ.


screenshot screenshot

screenshot screenshot

Getting Started

Jitter is cross-platform. The src directory contains four projects:

ProjectDescription
Jitter2The main library housing Jitter2's functionalities.
JitterDemoFeatures demo scenes rendered with OpenGL, tested on Linux and Windows.
JitterBenchmarkThe setup for conducting benchmarks using BenchmarkDotNet.
JitterTestsUnit tests utilizing NUnit.

To run the demo scenes:

  • Install .NET 10 SDK
  • git clone https://github.com/notgiven688/jitterphysics2.git
  • cd ./jitterphysics2/src/JitterDemo && dotnet run -c Release

JitterDemo uses GLFW for accessing OpenGL and managing windows, and VellumUI for the demo UI overlay. The project contains the GLFW native binaries in precompiled form.

Features

  • Compile time option for double precision.
  • Optional cross-platform deterministic solver mode for reproducible simulation.
  • Speculative contacts (avoiding the bullet-through-paper problem).
  • A variety of constraints and motors (AngularMotor, BallSocket, ConeLimit, DistanceLimit, FixedAngle, HingeAngle, LinearMotor, PointOnLine, PointOnPlane, TwistAngle) with support for softness.
  • A sophisticated deactivation scheme with minimal cost for inactive rigid bodies (scenes with 100k inactive bodies are easily achievable).
  • Edge collision filter for internal edges of triangle meshes.
  • Substepping for improved constraint and contact stability.
  • Generic convex-convex collision detection using EPA-aided MPR.
  • "One-shot" contact manifolds using auxiliary contacts for flat surface collisions.
  • Efficient compound shapes.
  • Easy integration of custom shapes. Integrated: Box, Capsule, Cone, Convex Hull, Point Cloud, Sphere, Triangle, Transformed.
  • Soft-body dynamics!

Documentation

Find the documentation here.

Credits

Grateful acknowledgment to Erin Catto, Dirk Gregorius, Erwin Coumans, Gino van den Bergen, Daniel Chappuis, Marijn Tamis, Danny Chapman, Gary Snethen, and Christer Ericson for sharing their knowledge through forum posts, talks, code, papers, and books.

Special thanks also to the contributors of the predecessor projects JigLibX and Jitter.

Contribute ๐Ÿ‘‹

Contributions of all forms are welcome! Feel free to fork the project and create a pull request.