Skip to content

Pure C# deterministic fixed-point 3D real time physics simulation library

License

Notifications You must be signed in to change notification settings

sam-vdp/bepuphysics1int

 
 

Repository files navigation

BEPUphysicsint v1

This is a fork of the awesome bepuphysics v1

BEPUphysics is a pure C# 3D physics library by BEPU. It's fast and has a bunch of cool features like constraints, terrain, static and instanced meshes, continuous collision detection, custom collision rules, vehicles, easy multithreading, yadda yadda yadda.

BEPUphysicsint is a fork that uses the FixedMath.net fixed-point integer math instead of floats. This ensures full cross-platform determinism of the physics simulation.

This fork is (almost 100%) compatible with BEPUphysics, so please refer to the BEPUphysics documentation page for reference.

Known issues

  • The value range of fixed point number is much more limited than float. As a result, the extent of the physics world should be limited to about 1000 on each axis. When the CHECKMATH compilation symbol is specified (e.g. in DEBUG builds), the math library will throw overflow exceptions.
  • Performance. Currently this fork is about 4 times slower than the float version. Hopefully this will be improved soon, but the fixed-point version will definitely remain slower than the float version.

Determinism caveats

  • Multithreading has to be disabled, otherwise the simulation will not be deterministic. See InternalMultithreading for reference.
  • Do not use floating point values when setting up the physics world. This probably also applies for collision meshes!

For discussions about BEPUphysics, please head to the BEPUphysics forums.

If you're looking for more BEPU-related stuff, head to the main BEPU website.

If you're feeling angelic, you can throw money at the creators of BEPUphysics:

About

Pure C# deterministic fixed-point 3D real time physics simulation library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%