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 5 and should work on any supported platform. The demos target .NET Core 5.0 and use DX11 by default. There is also an OpenGL version of the demos for other platforms that you can run from the command line in the repository root using 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 Core 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.
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.