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.
- 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!
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.
Continuous Collision Detection
Upgrading from v1, concept mapping
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.