Pure C# 3D real time physics simulation library, now with a higher version number.
Switch branches/tags
Clone or download


bepuphysics v2

This is the repo for the bepuphysics v2 library, a complete rewrite of the C# 3d rigid body physics engine BEPUphysics v1.

The library is still in beta. Many important features are missing, and many bugs likely remain.

The BepuPhysics and BepuUtilities libraries target .NET Standard 2.0 and should work on any supported platform. The demos are built on .NET Core 2.1 and require DX11.

The physics engine heavily uses System.Numerics.Vectors types, so to get good performance, you'll need a compiler which can consume those types (like RyuJIT).

To build the source, you'll need a recent version of Visual Studio with the .NET Core workload installed. Demos.sln references all relevant projects.


The beta contains:

  • Spheres, capsules, boxes, triangles
  • Compounds of the above
  • Meshes
  • Highly nonidiomatic APIs
  • Automatic sleeping/waking management
  • Ball socket, hinge, swivel hinge, swing limit, twist servo, twist motor, twist limit, angular servo, and angular motor
  • Speediness

It notably does not yet include:

  • Convex hulls, cylinders, cones, or other complex shapes
  • Dedicated heightmap terrain meshes
  • Mesh-mesh collision detection
  • Bounciness, other than the frequency/damping ratio tuning
  • Continuous collision detection, other than the speculative margin
  • Many useful constraint types


If you are one of the brave early adopters, you can report bugs here on github.

Visit the forums for discussion and questions.

Check the roadmap for a high level look at where things are going.

There exists some sparse proto-documentation:


Stability Tips

Performance Tips

Packaging and Versioning

If you have too many dollars, we are willing to consume them on patreon.