DanielChappuis / reactphysics3d

Open source C++ physics engine library in 3D
http://www.reactphysics3d.com
zlib License
1.5k stars 218 forks source link

Comparison with other libraries? #41

Open costashatz opened 6 years ago

costashatz commented 6 years ago

Hello,

Great project! Thanks for sharing!

I want to ask you whether you have made some comparisons with other libraries. For example:

Thanks, Konstantinos

DanielChappuis commented 6 years ago

Hello,

I have not really made comparisons with other physics engines yet. I have already started to add ReactPhysics3D into the PEEL Framework of Pierre Terdiman that is very useful for comparing the running time and behavior of physics libraries.

I have not finished this yet but I plan to release the dll in the future. This way, everyone will be able to compare ReactPhysics3D with other physics engine.

costashatz commented 6 years ago

I have not really made comparisons with other physics engines yet. I have already started to add ReactPhysics3D into the PEEL Framework of Pierre Terdiman that is very useful for comparing the running time and behavior of physics libraries.

I have not finished this yet but I plan to release the dll in the future. This way, everyone will be able to compare ReactPhysics3D with other physics engine.

Great! I am looking forward to it! Another a bit related question (sorry for bothering too much), have you ever used the library to create rigid body chains connected with joints (like robots)? How stable is the simulation? Moreover, can someone control the force applied to the joints or just the velocity?

Many thanks and good job for the very nice library!

DanielChappuis commented 6 years ago

I never tried exactly the scenario you describe but it should be possible. At the moment, you can set angle/distance limits to the joints but not the force. Maybe I can add this in the future.

Zylann commented 3 years ago

I recently discovered your library, and I wonder what differences are there compared to Bullet, or what were the motivations. Both libraries are C++ with an OOP API, except ReactPhysics3D is smaller.

DanielChappuis commented 3 years ago

I don't have any specific motivations except that I really enjoy working on this physics library. I have not started this project because I thought that Bullet or any other libraries did not fit my needs. I just wanted to create a physics library.

The current version (v0.8.0) of the library is not particularly fast compared to other libraries. That's why I have worked a lot on optimizations in the last months (as you can see in the develop branch). Therefore, the next release (v0.9.0) should be much faster. I have implemented a plugin for ReactPhysics3D inside the PEEL framework from Pierre Terdiman in order to compare it with other physics engines. On my computer, ReactPhysics3D v0.9.0 is relatively close to Bullet v2.85 for instance in terms of performance in most scenes. In some scenes, ReactPhysics3D is still a bit slower. Note that the newer versions of Bullet are not implemented in PEEL.

Concerning the features, ReactPhysics3D is younger than the main physics libraries and therefore some features are still missing. For instance, the following features are planned but not yet implemented in ReactPhysics3D (v0.9.0):

mokalux commented 3 years ago

You are doing a GREAT job Mister Chappuis with this physics engine 🥇 🥇 🥇

haolly commented 2 years ago

Is this library can avoid float-error which is important for online game to sync to each other

DanielChappuis commented 2 years ago

Is this library can avoid float-error which is important for online game to sync to each other

What do you mean by float-error exactly ?

haolly commented 2 years ago

Is this library can avoid float-error which is important for online game to sync to each other

What do you mean by float-error exactly ?

I mean do you use fixed-point, because float point has errors like 0.1 + 0.2 != 0.3