React Physics for Godot Engine 4.x

ReactPhysics3D is a C++ physics engine library that can be used in 3D simulations and games. The library is developed by Daniel Chappuis and is released under the open-source ZLib license.

ReactPhysics3D has the following features:

Rigid body dynamics

Discrete collision detection

Collision shapes (Sphere, Box, Capsule, Convex Mesh, Static Concave Mesh, Height Field)

Multiple collision shapes per body

Broadphase collision detection (Dynamic AABB tree)

Narrowphase collision detection (SAT/GJK)

Collision response and friction (Sequential Impulses Solver)

Joints (Ball and Socket, Hinge, Slider, Fixed)

Collision filtering with categories

Ray casting

Sleeping technique for inactive bodies

Multi-platform (Windows, Linux, Mac OS X)

No external libraries (do not use STL containers)

Documentation (user manual and Doxygen API)

Testbed application with demos

Integrated Profiler

Debugging Renderer

Logs

Unit tests

Why port this to Godot 4

If you are here, probably you have faced a lot of issues with the current state of physics in the engine, in order to solve or at least try to solve I've started porting this library to the engine, I'm no C++ expert, but I think that toguether we can get somewhere, the first problem I had is detailed in the link below, If you wish to help me in any way please contact me!

Current problem

we need to solve this compilation problem DanielChappuis/reactphysics3d#317

How to setup this library for compilation

  • Clone react phy repo: https://github.com/DanielChappuis/reactphysics3d?
  • Clone godot-cpp repo: https://github.com/godotengine/godot-cpp
  • Inside the cloned godot-cpp folder clone this repo
  • inside the react phy repo folder, create a folder called build
  • open this new folder with terminal
  • type cmake ..
  • then make -jN where N is your processor thread count
  • it will generate a DLL(windows) or SO(linux) copy it to the react-phy/libs/ folder
  • modify react-phy Sconstruct output_dir to your godot 4 project bin folder
  • in the Sconstruct's line 16 modify the reactphysics3d-master/include/ to point to the full directory
  • then go to this repo folder, and execute scons -jN target=template_debug