Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bullet vs Newton Game Dynamics vs ODE physics engines [closed]

I am trying to pick a physics engine for a simple software application. It would be to simulate a rather small number of objects so performance isn't a huge concern. I am mostly concerned with the accuracy of the motion involved. I would also like the engine to be cross-platform between windows/linux/mac and usable with c++ code. I was looking at Bullet, Newton Game Dynamics, and ODE because they are open source. However, if Havok/PhysX are significantly more accurate I would consider those too.

All I seem to find are opinions on the engines, are there any thorough comparisons between the options? Or does anyone have experience trying the various engines out. Since what I'm trying to do is relatively simple there probably isn't a huge difference between them, but I'd like to hear what people have to say about the options? Thanks!

like image 655
Anon Avatar asked Jun 20 '11 07:06

Anon


People also ask

Is Bullet physics good for games?

Well, if you are planning to learn about game physics in-depth, the Bullet physics engine is a great place to begin a fun journey in game development.

What is game physics engine?

The physics ENGINE is a computer program that you work into your game that simulates Newtonian physics and predict effects under different conditions. In video games, the physics engine uses real-time physics to improve realism.

How do physics simulators work?

A physics simulation starts with a mathematical model whose variables define the state of the system at a given time. Each variable represents the position or velocity of some part of the system. The heart of a physics simulation is the set of differential equations that describe how the variables evolve over time.

How do you install a bullet in physics?

How to Install and Get Started. Step 1: Download and Unzip - From http://bulletphysics.org ⇒ Download ⇒ Select the ZIP source file ⇒ Download and unzip into a directory of your choice, e.g., d:\myproject . Bullet physics shall be unzipped into " d:\myproject\bullet-2. xx ".


6 Answers

There is a nice comparison of ODE and Bullet here:

http://blog.wolfire.com/2010/03/Comparing-ODE-and-Bullet

Hope it can be useful in making a choice.

like image 64
Roman Hwang Avatar answered Sep 21 '22 17:09

Roman Hwang


Although it is a bit dated, there is a comprehensive comparison of (in alphabetical order) Bullet, JigLib, Newton, ODE, PhysX, and others available here:

  • http://www.adrianboeing.com/pal/papers/p281-boeing.pdf

The comparison considers integrators, friction models, constraint solvers, collision detection, stacking, and computational performance.

like image 21
user598524 Avatar answered Sep 20 '22 17:09

user598524


Sorry, but you will never find a real comparison with respect to accuracy. I am searching for three months now for my master thesis and have not found it. So I started to do the comparison on my own but it's still a long way to go. I'm testing with 3d engines and even 2d engines and for now Chipmunk is the one with the highest accuracy so far. So if you have no need for 3d I would reccomend it. However if you have an urgent need for 3d and your problem is as simple as you described it (don't want to expand it in the future?) Bullet and ODE will do it. I would prefer Bullet because it is much more up-to-date and is still actively maintained. At least there is Newton, with which I am fighting right now. Therefore I can't give you pros and cons except that it is a bit more work to get familiar with the (crucial) bad documentation. Hope that helps. Best regards.

like image 39
PWagner Avatar answered Sep 18 '22 17:09

PWagner


One thing I found really valuable in ODE is the ability to change pretty much every single parameter 'on the fly'. As an example, the engine doesn't seem to complain if you modify the inertia or even the shape of a body. You could replace a sphere with a box and everything would just keep working, or change the size of the sphere. Other engines are not as flexible usually, because they do a lot of work internally for optimization purposes. As for accuracy, as far as I know, ODE still supports a very accurate (but slow) solver which is obviously not very popular in the games industry because you can't play around with more than 25-30 objects in real time. Hope this helps.

like image 35
crisbia Avatar answered Sep 18 '22 17:09

crisbia


A physics abstraction layer supports a large number of physics engines via a unified API, making it easy to compare engines for your situation. PAL provides a unique interface for these physics engines:

  1. Box2D (experimental)
  2. Bullet
  3. Dynamechs(deprecated)
  4. Havok (experimental)
  5. IBDS (experimental)
  6. JigLib
  7. Meqon(deprecated)
  8. Newton
  9. ODE
  10. OpenTissue (experimental)
  11. PhysX (a.k.a Novodex, Ageia PhysX, nVidia PhysX)
  12. Simple Physics Engine (experimental)
  13. Tokamak
  14. TrueAxis

According to the December 2007 paper linked in this answer:

Of the open source engines the Bullet engine provided the best results overall, outperforming even some of the commercial engines. Tokamak was the most computationally efficient, making it a good choice for game development, however TrueAxis and Newton performed well at low update rates. For simulation systems the most important property of the simulation should be determined in order to select the best engine.

Here is a September 2007 demo by the same author:

https://www.youtube.com/watch?v=IhOKGBd-7iw

like image 24
Cees Timmerman Avatar answered Sep 17 '22 17:09

Cees Timmerman


Check out Simbody, which is used in engineering. It's particularly good for simulating articulated bodies. It has been used for more than 5 years to simulate human musculoskeletal dynamics. It's also one of the physics engines used in Gazebo, a robot simulation environment.

https://github.com/simbody/simbody

http://nmbl.stanford.edu/publications/pdf/Sherm2011.pdf

like image 36
chrisdembia Avatar answered Sep 21 '22 17:09

chrisdembia