Skip to content
Pure C# deterministic fixed-point 3D real time physics simulation library
Branch: master
Clone or download
Pull request Compare This branch is 45 commits ahead, 2 commits behind bepu:master.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
BEPUbenchmark
BEPUfloatBenchmark
BEPUik Migrate constants to F64 Feb 22, 2018
BEPUphysics Missed two float constants, make double and float conversion explicit Feb 28, 2018
BEPUphysicsDemos
BEPUphysicsDrawer
BEPUtests
BEPUutilities Missed two float constants, make double and float conversion explicit Feb 28, 2018
ConversionHelper
Dependencies
Documentation Formatting... May 11, 2017
Fix64Analyzer
FixedMath.Net
.gitignore
BEPUphysics.sln
BEPUphysicsDemos.sln WIP: Use Gauss elimination for Matrix3x3.Invert Feb 15, 2018
Fix64Analyzer.sln WIP: Add Analyzer to automatically generate static Fix64 constants Feb 22, 2018
LICENSE.md
README.md

README.md

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:

You can’t perform that action at this time.