Bullets, ODE or physX?

Please don't post Bullet support questions here, use the above forums instead.
Post Reply
bruce
Posts: 6
Joined: Fri Feb 15, 2008 6:02 am

Bullets, ODE or physX?

Post by bruce »

Hello
I'm sorry if this question look like a troll. But I can't find any answer up to date.
For the moment I prefer Bullets beceause it's open source, handle softbody and it support differents hardwares.
What do you think?
User avatar
projectileman
Posts: 109
Joined: Thu Dec 14, 2006 4:27 pm
Location: Colombia
Contact:

Re: Bullets, ODE or physX?

Post by projectileman »

ODE was the first open source physics engine, and that's why it is very popular between the game development community. But obviously Bullet exceeds ODE capablities with a more powerful and robust collision system, which can represent a more wider range of shapes and also supports continuous collision detection. Also it has a better general design and more efficient algorithms not only for collision and rigid bodies but also on constraint solving. It's generic 6DOF constraint allows to build complex articulated bodies in a more intuitive way than the Universal joints on ODE.

So the serious rival for Bullet is PhysX, which is a hardware based solution. PhysX has the advantage of the NVIDIA support and also the fact that it has been used on leading-edge game engines like Unreal. PhysX it's free and powerful, but not open source.

In constrast, Bullet it's really free (MIT license) and could run literally on every platform. It runs on the Iphone and also on other mobile devices through its Java implementation .
Myagi
Posts: 5
Joined: Fri Jul 22, 2005 7:57 pm

Re: Bullets, ODE or physX?

Post by Myagi »

projectileman wrote:PhysX, which is a hardware based solution.
That statement could be taken the wrong way, at least in the sense that it requires HW to run (well). PhysX can be used as a software physics lib just fine*, it's part of the design and not just some tacked on lousy implementation. It was originally (Novodex) a software lib. Lack of source and portability remains, unless you cough up $50k.


* ymmv ;)
harsens
Posts: 2
Joined: Thu Nov 27, 2008 12:11 pm

Re: Bullets, ODE or physX?

Post by harsens »

ODE was the first open source physics engine, and that's why it is very popular between the game development community. But obviously Bullet exceeds ODE capablities with a more powerful and robust collision system, which can represent a more wider range of shapes and also supports continuous collision detection. Also it has a better general design and more efficient algorithms not only for collision and rigid bodies but also on constraint solving. It's generic 6DOF constraint allows to build complex articulated bodies in a more intuitive way than the Universal joints on ODE.
That sounds a bit fanboyish to me. Other than the cone, ODE supports the same basic collision shapes that Bullet supports. Bullet also supports collision with a concave mesh, I'm not sure if ODE does the same, it might be possible with ODE+GIMPACT. ODE's joint types allow me to build whatever articulated body I need. A generic 6-DoF constraint designer is nice, but not crucial for me. I'm not sure why you compare ODE's universal (=2 DoF rotational) joint with Bullets 6DOF constraint?

Design is a matter of taste, I personally like ODE's simple design.

As for constraint solving, ODE uses a Dantzig solver, which is slower, but more accurate than an iterative solver such as the one used in Bullet. Quicker iterative solving is also available in ODE, I personally never used it since my work focuses on articulated body simulation of few bodies, where accuracy and stability is more important than speed.

I personally prefer ODE's documentation in the Wiki over Bullet's Wiki.

I couldn't find in the documentation how friction works in Bullet, can someone enlighten me? ODE uses a simplification of Coulomb friction, using a friction pyramid.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Bullets, ODE or physX?

Post by Erwin Coumans »

Both ODE and Bullet are good open source choices. Agreed, ODE has better documentation and wiki, we are working to sort out those weaknesses of Bullet. Both engines are compact and simple in design, and being open source means it is easy to take a feature of one and integrate it into the other.

Bullet 2.74 release will contain the same Dantzig LCP solver, and a Featherstone constaint solver is pending. The ODE iterative quickstep solver is identical to the Bullet sequential impulse solver.
harsens wrote:Other than the cone, ODE supports the same basic collision shapes that Bullet supports.
ODE still doesn't support stable convex hull collision detection, and lacks other collision detection features.
ODE uses a simplification of Coulomb friction, using a friction pyramid.
Bullet uses the same friction pyramid.

Some benefits of Bullet over ODE:
  • support for warmstarting of contact constraints for faster convergence
  • integrated cloth and soft body simulation with two-way interaction with rigid bodies
  • Sony-supported Cell SPU parallelized version for PlayStation 3
  • toolchain support through Dynamica Maya plugin, Blender and COLLADA physics
  • CUDA broadphase acceleration, and upcoming CUDA parallel constraint solver and OpenCL support
Thanks for the feedback,
Erwin
Myagi
Posts: 5
Joined: Fri Jul 22, 2005 7:57 pm

Re: Bullets, ODE or physX?

Post by Myagi »

haven't looked at ODE in quite a while, but isn't it completely devoid of ray casts with shapes, something that's quite essential at least for most gaming applications.

doesn't ODE also lack a convex hull/polyhedron shape, again very useful in a lot of gaming applications.

I don't think objective observations like that (should they be correct) should sound fanboish. I haven't even used bullet myself (yet), I've used couple of other libs including ODE. What I do know is how incredibly frustrating it is if cruicial functionality is missing when doing real-world apps (with deadlines), the whole point when using a third party lib is because you don't have the time and/or know-how to implement the stuff. Ending up with a lib, where you have implement non-trivial components yourself to actually be able to use it, is an absolute no-go.

In fall fairness since I haven't used bullet I can't say whether it has any "show stoppers" or not.
harsens
Posts: 2
Joined: Thu Nov 27, 2008 12:11 pm

Re: Bullets, ODE or physX?

Post by harsens »

A Featherstone solver sounds great, I'll be keeping an eye on this project then.

ODE should be able to handle collisions between triangular convex (but not concave?) meshes. I have no experience with how stable that is though, for my purposes it's enough to approximate the collision shape with capsules and boxes.

As for the fanboyism I was mainly referring to the 'better general design' and 'more efficient algorithms for constraint solving' and the 'obvious exceeding of ODE capabilities'.
Post Reply