• Advertisement
Sign in to follow this  

Opinions on ODE or other open source physics engine?

This topic is 4395 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've recently downloaded and starting using ODE for physics in the project we're working on and I have found it to be less than pleasant to get up and running, and many of the samples error out constantly. I want to get some opinions about it, and any other open source physics library that would be worth taking a look at. Thank you

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by cvg_james
I've recently downloaded and starting using ODE for physics in the project we're working on and I have found it to be less than pleasant to get up and running, and many of the samples error out constantly. I want to get some opinions about it, and any other open source physics library that would be worth taking a look at.

Thank you


ODE is probably the best bet for free.

If you are looking for zero-cost (but fairly restrictive) you might look at tokomak, but it really isn't better overall.

If you are willing to spend money, you might look at Havok or Critical Mass (Vortex).

You are right that moving to a full physics engine can be "less than pleasant" since it requires extensive work with creating physics models, proxies for your geometry, and can bring up design concerns all over existing applications.

A good physics engine isn't a trivial tool to use, especially in homebrew games. But the results are certainly worth the effort.

frob.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you are looking for open source solution I am afraid you are stuck with ODE.
If you accept a free engine then integration is quite easy with any of the free solutions and they all are far superior to ODE.

Comparing Havok to Vortex is like comparing water to oil and concluding they are the same because they are liquids.

Havok as well as all of the commercial physics engines are made to run with a very high degree of inaccuracy using iterative formulation that generates solutions that looks pleasant enough for game purposes but are far from correct physical behavior.

Vortex is a heavy-duty realistic engine designed to generate physical results that are good enough to implement prototypes and prove of concept designs, speed is not the main goal, realism is.

They do not target the same market.

Share this post


Link to post
Share on other sites
I'm not so sure that Vortex is significantly more accurate than Havok or PhysX or ODE or the rest. It is true that Vortex is marketed for a different use than the so-called "game physics" engines. And it surely has a few supporting tools that aren't really meant for games. And CM-Labs offers custom integration/custom application development services that probably go far beyond what the game physics companies offer. This is the added value of CM-Labs for people who need an engineering solution. But, at its core it most likely isn't all that different or special or more accurate. You may not know this, but CM-Labs (who produce Vortex) were once part of MathEngine, a game-specific physics engine company. I doubt that Vortex was developed without heavy influence from the MathEngine days. MathEngine updated their engine and called it Karma (used in Unreal 2 I think, among others), and was eventually purchased by Criterion to become Renderware Physics, and then Criterion was purchased by EA. On the other side, Havok began life as an "industrial strength" physics engine by the company, Telekinesys, and (as I understand the history) the Havok division was later created to go after the games industry. To complicate the Vortex/MathEngine issue further, Russ Smith, who authored ODE, once worked as a developer for MathEngine. So Vortex and ODE have common ancestry! And Havok was "industrial strength" before Vortex was developed by the ex-Math-Engine folks. It is interesting to have seen all this evolve over the course of the past 5 or 6 years.

All these engines, used correctly, can produce good, engineering-quality, non-real-time results in addition to fast, game-like, real-time results. They are all based on small variations of the same governing equations and slightly larger variations in numerical techniques. Some do certainly produce better results when objects have generalized constraints or experience lots of collisions. But it is difficult to say that one is more accurate than the other when they are used correctly and with a good understanding of how to properly formulate a simulation. In the engineering world, people make careers out of how to use the software, how to formulate the simulation. It is often the subtleties of problem setup that make the difference between an engineering solution and a game solution, rather than the tool.

MathEngine press release when spinning off CM-Labs

Share this post


Link to post
Share on other sites
ODE has some idiosynchrasies that you need to learn. Make sure to READ the ENTIRE manual -- cover to cover -- before writing a single line of code. It'll help enormously. If you don't understand things in that manual, you are likely missing important supporting skills that are not ODE-specific, but rather general game physics, math or language skills.

If you want a high quality physics engine with possible hardware acceleration, and download and write code with it for free, you can't beat Novodex; available for download from Ageia, the makers of the PhysX physics accelerator chip. If you actually want to ship a game based on it, there are some conditions you have to adhere to, but for development in your own garage, it's a really great package!

Share this post


Link to post
Share on other sites
You can also look at ageia (www.ageia.com) . They have a very complete API with a really great set of tutorials.

Share this post


Link to post
Share on other sites
@grhodes_at_work
This is real good news. So what you are saying is that ODE is just as good as Vortex if used properly?
I believe you are right when you say that the game engines are solving the same equation vortex is solving. It is also a documented fact that game engines are using algorithms that lead to approximated solutions; therefore they cannot be equally accurate.
But I maybe wrong you seems to be well versed on these subject.

I have been playing with ODE for years, and I also played with Havok mods (HL2) for comparison. I found that Havok is perhaps more polished library but it suffer from the weakness that I’d seen with ODE and the Quick step solver. So I assume it is because they are taking similar short cuts.

You say that all of these engines, used correctly, can produce engineering quality for non real-time solutions. I had been trying so many times without success. Each time I use the non-iterative solver I get inexplicable explosions, unless I use high CFM in which case it is almost as having the same Quickstep but a lot slower.

Perhaps you can give me some pointes of what kind of engineering expertise is required to make ODE as accurate as Vortex is.

Please help me.


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by hplus0603
If you want a high quality physics engine with possible hardware acceleration, and download and write code with it for free, you can't beat Novodex; available for download from Ageia, the makers of the PhysX physics accelerator chip. If you actually want to ship a game based on it, there are some conditions you have to adhere to, but for development in your own garage, it's a really great package!

Is Novodex Open Source?
My impression was that is was about Open source engines.
The only one that qualifies as engine is ODE.
Maybe you can check Open Tissues, and now Bullet (maybe future ODE 2) but those are not full-integrated engines yet, more a collection of loose physics tools.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Quote:
Original post by hplus0603
If you want a high quality physics engine with possible hardware acceleration, and download and write code with it for free, you can't beat Novodex; available for download from Ageia, the makers of the PhysX physics accelerator chip. If you actually want to ship a game based on it, there are some conditions you have to adhere to, but for development in your own garage, it's a really great package!

Is Novodex Open Source?
My impression was that is was about Open source engines.
The only one that qualifies as engine is ODE.
Maybe you can check Open Tissues, and now Bullet (maybe future ODE 2) but those are not full-integrated engines yet, more a collection of loose physics tools.


NovodeX (now called Ageia PhysX SDK) is not open source. But, in some circumstances it appears that you can use it for free, possibly even in commercial products that support Ageia hardware. Read the license agreement carefully, and make sure you fully understand what the conditions are before beginning to use this in a commercial product.

I am wary of Open Tissue. I agree with your assessment that it appears to be a loose collection of tools. It may be fine, but in my brief look at the website it appears to be more of a researchy tool than a production tool. I took a look at the book associated with it, "Physics-Based Animation," a while back, and just did not find that I liked the book at all. To me, it looks like a compilation of notes rather than a well-thought-out book. I don't really see any documentation on the website. My concerns may be unfounded, and I admit that I have not really explored the toolkit at all....but, I remain very wary!

Share this post


Link to post
Share on other sites
If you're just looking for a zero cost physics SDK, I believe Newton is now freely available even for commercial use. The license was recently changed.

Please feel free to correct me if I'm wrong

Share this post


Link to post
Share on other sites
Quote:
Original post by jovani
@grhodes_at_work
This is real good news. So what you are saying is that ODE is just as good as Vortex if used properly?


"Just as good" in some ways. For many classes of problems, you should be able to produce equivalently good/accurate results. Commercial libraries such as Vortex will often have fewer constraints or limitations than the freeware libraries, so in this way Vortex would be much better.

Quote:
Original post by jovaniI believe you are right when you say that the game engines are solving the same equation vortex is solving. It is also a documented fact that game engines are using algorithms that lead to approximated solutions; therefore they cannot be equally accurate.
But I maybe wrong you seems to be well versed on these subject.


All of the physics engines use numerical algorithms and produce approximated solutions, not just the "game" physics engines and not just the "real-time" physics engines. It is true that they are not all equally accurate, e.g., they all produce different error. But when used properly, all can produce solutions that have bounded and controllable error of similar magnitude. ODE and Vortex might not produce the exact same numerical result, but both results could still be, say, first-order accurate in time and space. Non-real-time engines can afford to take more time to resolve contact manifolds for stacking and collision, and in this way they probably sometimes produce better results in this area. ODE might not have an implicit solver, and so definitely will have limits on the physical stiffness it can handle. The same can be said of Vortex and the rest.

Quote:
Original post by jovaniYou say that all of these engines, used correctly, can produce engineering quality for non real-time solutions. I had been trying so many times without success. Each time I use the non-iterative solver I get inexplicable explosions, unless I use high CFM in which case it is almost as having the same Quickstep but a lot slower.

Perhaps you can give me some pointes of what kind of engineering expertise is required to make ODE as accurate as Vortex is.


These physics engines are all capable of producing equivalently good results for the type of problems that they all support. I stand by that statement. There can be a problem, however, in measuring and proving the quality of results. The engines might not all produce the particular statistics needed to numerically judge the results. And, so your only judgement might be that the solution looks basically right, or that the objects do appear to behave in a realistic manner, or that certain boundary conditions are satisfied. This type of judgement isn't necessarily sufficient to really say that a result is "engineering quality." But, I am certain that these engines can produce engineering quality results, even if it can't always be proven numerically. It is always possible to keep track of things that should be conserved, such as total energy, and momentum. And by tracking these, you can have a measurement of goodness.

It would actually help me to understand what you, yourself, mean by engineering quality? How exactly have you been measuring this? And are you qualified to judge, e.g., do you have an engineering degree and do you work professionally as an engineer? I will note that "engineering quality" is not the same thing as "stable." Just because one engine doesn't explode doesn't mean its solution is better quality in general. Are you hacking your simulations? Or are you making educated choices, based on numerical analysis, about how to configure the various engines?

Share this post


Link to post
Share on other sites
I don't mean to hijack this thread, but I've been wondering for a while, has anyone attempted to use ODE in modelling molecular dynamics? For example, protiens consist of discrete units (100's to 1000's amino acids) linked together to form a really long chain that folds around itself under the influence of charges in the surround water and hydrophobic attraction of the subunits.

All the shape predicting I've seen is really high precision non real time software (for example tinker). Does anyone know if ODE has been used to do this in real time? I'm sure I haven't given a good overview of the problem, but on this limited information, would ode be suitable for this type task?

Share this post


Link to post
Share on other sites
The forces holding molecules together are extremely stiff (Requiring lots of energy in general to break them apart). Because of this, molecular dynamics is an area where a general-purpose physics engine probably will not perform well, and where specialized codes with specialized solvers would be needed. It might be possible if you model the connection between atoms as rigid-body constraints, but when you have 100's or 1000's or dependent constraints, the simulation will run slower---likely not real-time even with a "real-time" engine---just because of the time required to resolve the simultaneous constraints for each frame. Are traditional structural finite element codes ever used to model molecular dynamics? If so, something like ODE could be used in a similar manner, with similar performance. In any case, you'd have to write custom code to model the molecular forces.

Share this post


Link to post
Share on other sites
I think that ODE is good and it's free engine. Some commercial games were made with it (like Xpand Rally) too. Probably you need some tweaks to get less errors.

Share this post


Link to post
Share on other sites
just a FYI,

I noticed "Myst IV: End of Ages" used ODE.


I've been using ODE for about a year now on my C# app... It takes some getting used to but well worth the trouble.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by grhodes_at_work
These physics engines are all capable of producing equivalently good results for the type of problems that they all support. I stand by that statement


Again how can you be so certain of that? Do you have a technical paper that explain the internal of these engine and also the internal of Vortex?

Having a common root with Math Engine is not more different than 3d studio max and Autocad being made by Autodesk. The only thing they have in common I that they are graphic packages, but not architectural company uses Max the same way that not game company used Autocad.

The list of client for vortex suggests it has been licensed for prototyping Engineering projects. I assume these companies expect realistic result in their prototypes without too much hacks. I have not seen any industrial project using a game engines, nor I had seen any game company using vortex.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Again how can you be so certain of that? Do you have a technical paper that explain the internal of these engine and also the internal of Vortex?

Having a common root with Math Engine is not more different than 3d studio max and Autocad being made by Autodesk. The only thing they have in common I that they are graphic packages, but not architectural company uses Max the same way that not game company used Autocad.

The list of client for vortex suggests it has been licensed for prototyping Engineering projects. I assume these companies expect realistic result in their prototypes without too much hacks. I have not seen any industrial project using a game engines, nor I had seen any game company using vortex.


jovani, I don't think we need to continue this discussion much further. This forum is not one in which to debate things to death. That becomes unproductive fast, as I'm sure you'll agree. If you want a very current, engineering comparison of various physics engines, and you want it sooner rather than later, then I can generate one for you through my company as a consultant for hire, as can many other engineering simulation firms. Or, you can patiently wait until someone produces and publishes the evidence you seek for free.

To partially answer your latest questions and conclude this discussion here @ gamedev, I will offer two documents of interest, with my comments.

First, ODE's documentation states that it uses a first-order integrator, and that it shouldn't be used for quantitative engineering analysis. Yeah, that means something. But don't assume that other engines provide better than first-order. They might, but don't count on it. I offer the following circumstantial evidence. There is no proof that the statement at the link below (made by the author of ODE) is true, though I believe that it was probably true at the time the post was written. Both engines have improved since the posting, but there is no public info I'm aware of that makes this statement incorrect today:

Comment in ODE forum on accuracy of Vortex vs. ODE

The underlying message in that statement is true. It is the exact same thing I hinted at in a prior post. To achieve an accurate, "engineering" simulation result, you must prepare your model correctly. You must model everything well before sending it to the simulator. And, then you must choose the proper simulator settings for your problem. The accuracy of the simulator is at the mercy of your model! So you if you want engineering results you better damned well know how to build a proper model, no matter which engine you choose. Even if an engine has a better than first-order accurate integrator, and provides an implicit or semi-implicit integrator, results will still be poor with a bad model. Integrators deterioriate rapidly from their theoretical accuracy when a model is bad. And its far easier to produce a bad model than a good one.

The following document is more what you were looking for, an engineering evaluation of different physics engines, including Vortex and ODE. Yeah, it doesn't give any numerical results, and it isn't rigorous or peer-reviewed. But it is something. Their verdict? Vortex and ODE are roughly equivalent, but neither provides the accuracy they needed! For accuracy, they prefered a package called ADAMS, which is very high end and measurably "engineering quality."

Comparison of simulation engines

Oh, here's the product page for ADAMS

MSC.ADAMS

To be clear, there can be significant added value when you license a commercial engine and use their support services. With a commercial engine targeted at engineering firms, the added value is that the engine developer will consult with you to help you to formulate your problems in an engineering-consistent way, if you need such help.

[Edited by - grhodes_at_work on January 9, 2006 10:56:46 PM]

Share this post


Link to post
Share on other sites
I offer my apologies to cvg_james for letting this thread get so far off topic. I take responsibility, and will try to be more careful about being drawn in by troll posts in the future, even if they are borderline on topic as the ones here were.

My hope is that some of the information (e.g., anything not posted by myself or jovani) has been helpful in some way.

Share this post


Link to post
Share on other sites
I've working with ODE, and it's good enough for rigid bodies.
But it seems that there aren't engines that support deformable bodies.
Is there any physic engine that supports particle systems and deformable bodies?
Just for simulating fleshing bodies, and shock deformations.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement