/bepuphysics2

Pure C# 3D real time physics simulation library

Primary LanguageC#Apache License 2.0Apache-2.0

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 BepuPhysics and BepuUtilities libraries target .NET 6 and should work on any supported platform. The demos application, Demos.sln, uses DX11 by default. There is also a Demos.GL.sln that uses OpenGL and should run on other platforms. The demos can be run from the command line (in the repo root directory) with dotnet run --project Demos/Demos.csproj -c Release or dotnet run --project Demos.GL/Demos.csproj -c Release.

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 desktop development workload installed. Demos.sln references all relevant projects. For more information, see Building.

Features

  • Spheres, capsules, boxes, triangles, cylinders, and convex hulls
  • Compounds of the above
  • Meshes
  • A whole bunch of constraint types
  • Newts
  • Linear and angular continuous collision detection
  • Extremely low cost sleep states for resting bodies
  • Efficient scene-wide ray and sweep queries
  • Character controller example
  • At least somewhat extensible collision pipeline, with example custom voxel collidable
  • Highly nonidiomatic APIs
  • Super speediness
  • And a bunch of other miscellaneous stuff!

Links

Report bugs on the issues tab.

Use the discussions tab for... discussions. And questions.

By user request, there's a discord server. I'll be focusing on github for long-form content, but if you like discord, now you can discord.

Getting Started

Building

Q&A

Stability Tips

Performance Tips

Substepping

Continuous Collision Detection

Contributing

Change log

Upgrading from v1, concept mapping

Packaging and Versioning

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

If you have too many dollars, we are willing to consume them through github sponsors.