Newton -vs- ODE

Miscellaneous Forums/General Discussion/Newton -vs- ODE

I posted on the Newton (physics engine) forum under the heading 'Newton -vs- ODE' and within 2min the moderators changed the heading to 'Newton -vs- other engine'. After several more minutes they decided to delete my entire post.

I guess the glare of the bright lights scare some people.

My gut feeling is ODE performs better overall, and because it's mature has fewer bugs. I was hoping to learn what class of problems Newton was better at, and why people would choose one over the other.

Didn't Ageia buy out Newton?

I prefer Newton for its perfectly stable and perfectly easy convex hulls support, which I currently cannot do without.

ODE currently doesn't support convex hulls. I'd imagine one could use a 3d modeler and place collision planes around the model to simulate a convex hull.

I can see advantages to using convex hulls for collision support.

Newton is much better, but it still has poor character control implementation.

Unlike Havok and PhysX, Newton doesn't allow a stepheight. Instead it uses an upright capsule to model the player, which causes many problems. It also does not allow a minimum slope angle, so there is no way to prevent a player from sliding down a slope (without screwing up other aspects of the simulation).

I'm talking to the author to see if these issues can be addressed. If not, I'm using Ageia's PhysX.

As for ODE...it sucks. Objects interpenetrate all the time, and it's extremely unstable.

ageia physx is completely free now, for commercial use too.

Newton is ok but has material based collision response, and the convex hulls aren't that efficient.

You could make your own custom convex hulls a lot better.

ODE gives up a little accuracy for speed, and physx is faster even when doing physics on the CPU.

ageia physx is completely free now, for commercial use too.


Since when? Their website says a standard commercial license costs $50,000.

http://www.ageia.com/developers/index.html

It's still the same "If you use the hardware enough and if we agree and if we accept you and if we like the look of your face, we might not charge you" thing as far as I can see.

ODE trimesh-trimesh
http://gimpact.sourceforge.net/
haven't looked at it sounds interesting..

It was posted last week some time on their site and in the forums. I cut and pasted from an email I sent a few people. Got the original link from the Ogre forums, but they are down right now.



Public Releases Thread: Free PhysX for all!!
Posted on 10/27/2006 6:36 PM
We have just implemented a new EULA (End User License Agreement) that allows the PhysX SDK, from 2.6.0 and on, to be used in all commercial and non-commercial PC projects for free.

In order to qualify for the new license, you must:

1) Fill in all of the *required fields in your user Profile ("My Settings->My Profile"), as some have changed and others now require accurate, up-to-date, information. NOTE: Your name is the only identifying data visible by default to other users of this site, and only if you choose to post to this Forum.

2) Accept the EULA when it pops up after selecting the related downloads. I have added extensive pop-up descriptions to each of the required fields, in case there are any questions about how to fill them (hover your mouse over the ? buttons).

If you do not follow these steps, you do not have a valid license to use the PhysX SDK for any purpose.

Note that this free license applies to PC versions of the SDK, including the Windows and Linux platforms. You need to contact us directly if you require the Xbox 360 PhysX SDK for a commercial title, or contact Sony for the PS3 PhysX SDK.

If you have already downloaded the 2.6.0 PhysX SDK for evaluation, you can activate the free license by following both of the steps above. The timestamp of your new download stored on this system will validate that you accepted the new EULA.

Public Releases Thread: Linux SDK
Posted on 10/19/2006 2:12 AM
For licensed developers, we now have packages available in the Downloads area for SDK development on Linux with PhysX SDK 2.6.0. We don't plan to port the current non-commercial-use SDK (2.5.1), but the 2.6.0 packages will be available to non-licensees in the (nearish) future.

Please consider this to be an alpha release. As such, there may be samples that have yet to be ported and bugs yet to be found. Primary support will continue to be on the Windows SDK version--as most issues and advice tend to be platform agnostic.

Very interesting, thanks for the information. I like Newton, but it won't hurt to take a look at the alternative.

Sadly only Havok is the real physics engine still out there if you're having to do concave mesh stuff. PhysX is fast, stable and nice when it comes to simple primitives but as soon as you leave this scenario there is only Havok.

Free PhysX, eh?

I may have to look at it.

Way to complicate everything, Evak!

Thanks, though :b


As for ODE...it sucks. Objects interpenetrate all the time, and it's extremely unstable.


Utter nonsense. Firstly if you have penetration problems then you're doing something wrong, you have full control over how much objects penetrate each other. Secondly ODE is rock solid, you won't experience stability problems unless you set up the simulation incorrectly. Bad workmen always blame their tools when the problem is actually their incompetence/inexperience.


ODE gives up a little accuracy for speed


ODE gives you full control over the accuracy and speed of a simulation, it's entirely up to the programmer how fast or accurate the simulation will run.

Most complaints about ODE are in fact nothing to do with ODE itself, but the collision system it currently uses - OPCODE. The ODE authors acknowledge this and are currently building a version which uses 'Bullet' collisions as an alternative. Also, convex hulls are already being implemented in ODE.

The very fact that Wayne had his post deleted on the Newton forums speaks volumes.

All physics engines have their good and bad points, including ODE. Which engine you should use depends on what you want to do with it.

Havok is the best physics engine currently available IMO.

Here's Ageia's announcement:
http://devsupport.ageia.com/ics/support/default.asp?deptID=1949

And here is the new EULA:
AGEIA Technologies, Inc.
AGEIA PHYSX SDK END USER LICENSE AGREEMENT

Welcome to the new world of reality gaming brought to you by PhysX™ acceleration from AGEIA™.

AGEIA Technologies, Inc. is willing to license the PHYSX SDK and the accompanying documentation to you only on the condition that you accept all the terms in this License Agreement (“Agreement”) and accurately maintain all required information on your AGEIA Developer Site Profile ("My Support->My Profile").

IMPORTANT: READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING THE ACCOMPANYING AGEIA PHYSX SDK.

BY CLICKING ON THE "ACCEPT” BUTTON BELOW, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, AGEIA IS NOT WILLING TO LICENSE THE PHYSX SDK TO YOU. IF YOU DO NOT AGREE TO THESE TERMS, YOU MAY, WITHIN 15 DAYS, RETURN THIS ENTIRE PRODUCT TO THE LOCATION WHERE YOU ACQUIRED IT OR PROVIDE WRITTEN VERIFICATION OF DELETION OF ALL COPIES OF THE ENTIRE PRODUCT IF YOU HAVE ACQUIRED THE PRODUCT BY DOWNLOAD.

1. Definitions. “Physics Application” means a software application designed for use and fully compatible with the PhysX SDK and/or AGEIA PhysX processor products, including a video game, visual simulation, movie, or other entertainment product. PhysX Software Development Kit or “PhysX SDK” means the set of instructions for computers, in executable form and in any media (which may include diskette, CD-ROM, downloadable internet, hardware, or firmware) comprising AGEIA’s proprietary Software Development Kit and related media and printed materials, including Redistributable Code, Sample Code, reference guides and manuals, installation routines, PhysX drivers, API’s, libraries, any subsequent updates or adaptations provided by AGEIA, whether with this installation or as separately downloaded. “Redistributable Code” means the Sample Code and any object code files located in the “\SDKs\lib\” and “\Tools\NXuStream2” directories of the PhysX SDK. “Sample Code” means the sample interface or application source and object code files contained within the PhysX SDK’s “Samples” directory or made available for download from the PhysX developer site and designated as sample code.

2. License. AGEIA Technologies, Inc. (“AGEIA”) grants you (“you”) a limited, non-exclusive, non-transferable world-wide, royalty-free license to (a) internally install, use and display the PhysX SDK, solely for purposes of developing Physics Applications; (b) internally use, copy, modify and compile the Sample Code to design, develop and test Physics Applications; and (c) reproduce and distribute the Redistributable Code only in object code form and only as fully integrated into Physics Applications, provided you meet and comply with all requirements of this Agreement. Any terms or conditions appearing on the face or reverse side of any purchase order, purchase order acknowledgment or other order document that are different from, or in addition to, the terms of this Agreement will not be binding on the parties, even if payment is accepted. Except as expressly granted herein, no other license under any patent, copyright, trade secret, trademark or other intellectual property right is granted to or conferred upon you by this Agreement. All other rights are expressly reserved by AGEIA and its licensors.

3. Redistribution; Physics Applications. Any redistribution of the PhysX SDK or portions thereof must be subject to an end user license agreement including language that (a) prohibits the end user from modifying, reproducing, de-compiling, reverse engineering or translating the PhysX SDK; (b) prohibits the end user from distributing or transferring the PhysX SDK other than as part of the Physics Application; (c) disclaims any and all warranties on behalf of AGEIA and its affiliated companies and licensors; (d) disclaims, to the maximum extent permitted by law, AGEIA’s, its affiliated companies and its licensors' liability for all damages, direct or indirect, incidental or consequential, that may arise from any use of the PhysX SDK and/or Physics Application; and (e) requires the end user to agree not to export the PhysX SDK and/or Physics Application, directly or indirectly, in violation of any U.S. laws. Upon request, you must provide AGEIA with two (2) copies of any Physics Application and related documentation that is commercially released subject to a license enabling AGEIA to use and publicly display reasonable portions of such Physics Application for advertising purposes. Physics Application(s) should be sent to:

AGEIA Inc.
82 Pioneer Way, Suite 118
Mountain View, CA 94041
Attention: Vice President of Business Development

4. Ownership, Protections. The PhysX SDK is owned by AGEIA and AGEIA licensors, and is protected by United States copyright laws, international treaty provisions, and other applicable laws. With regard to any copies made, you agree to reproduce any copyright notices and other proprietary legends included on the original. AGEIA copyright notice(s) may appear in any of several forms, including machine-readable form, and you agree to reproduce such notice in each form in which it appears. Title and copyrights to the PhysX SDK and any copies made by you remain with AGEIA and its licensors. You acknowledge that the PhysX SDK contain valuable proprietary information and trade secrets and that unauthorized or improper use of the PhysX SDK will result in irreparable harm to AGEIA and its licensors for which monetary damages would be inadequate and for which AGEIA and its licensors will be entitled to immediate injunctive relief. Subject to the rights of AGEIA and its licensors in the PhysX SDK and the Sample Code, you own your modifications to the Sample Code.

5. Restrictions. You will not, and will not permit others to: (a) modify, translate, decompile, bootleg, reverse engineer, disassemble, or extract the inner workings of any portion of the PhysX SDK except the Sample Code, (b) copy the look-and-feel or functionality of any portion of the PhysX SDK except the Sample Code; (c) remove any proprietary notices, marks, labels, or logos from the PhysX SDK or any portion thereof; (d) rent, transfer or use as a service bureau all or some of the PhysX SDK without AGEIA’s prior written consent, except in the form of Physics Applications and subject to the requirements of this Agreement; or (e) utilize any computer software or hardware which is designed to defeat any copy protection device, should the PhysX SDK be equipped with such a protection device. Unauthorized copying of the PhysX SDK, or failure to comply with any of the provisions of this Agreement, will result in automatic termination of this license.

6. Attribution Requirements and Trademark License. You must provide attribution to AGEIA and the AGEIA PhysX SDK in the “About” or “Info” box menu items (or equivalent) of all Physics Applications using any portion of the PhysX SDK in the format set forth below, or as otherwise specified or approved in writing by AGEIA:

PhysX™ technology provided under license from AGEIA Technologies, Inc. (Copyright © 2002, 2003, 2004, 2005, 2006 AGEIA Technologies, Inc., USA. All rights reserved. http://www.ageia.com.

Except as expressly set forth in this Section 6, or in a separate written agreement with AGEIA, you may not use AGEIA's trademarks, whether registered or unregistered, in connection with the Physics Application in any manner or imply that AGEIA endorses or otherwise approves of the Physics Application or that you and AGEIA are in any way affiliated. Your use of the AGEIA name under this Agreement does not create any right, title or interest in the AGEIA name or any AGEIA trademarks and all goodwill arising from your use inure solely to the benefit of AGEIA.

7. DISCLAIMER. EXCEPT FOR THE ABOVE EXPRESS LIMITED WARRANTY, THE PHYSX SDK IS PROVIDED “AS IS” AND AGEIA AND ITS LICENSORS MAKE, AND YOU RECEIVE, NO OTHER WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR IN ANY COMMUNICATION WITH YOU. AGEIA SPECIFICALLY DISCLAIMS ANY OTHER WARRANTY INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. AGEIA DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR FREE OR THAT DEFECTS IN THE SOFTWARE WILL BE CORRECTED. AGEIA MAKES NO WARRANTY WITH RESPECT TO THE CORRECTNESS, ACCURACY, OR RELIABILITY OF THE SOFTWARE AND DOCUMENTATION. Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion may not apply to you.

8. Remedies. The entire liability of AGEIA and its licensors, and your exclusive remedy under the warranty provided herein will be, at AGEIA’s option, to replace any Media found to be defective within the warranty period, or to refund the purchase price and terminate this Agreement. To seek such a remedy, you must return the entire PhysX SDK to AGEIA, with a copy of the original purchase receipt within the warranty period.

9. Confidential Information. All technical and business information disclosed by AGEIA to you under this Agreement, including but not limited to source code, documentation, technical assistance and any confidential information pertaining to AGEIA’s business or products, are to be considered “AGEIA Confidential Information.” You will not disclose any portion of AGEIA Confidential Information to any third party and will protect all AGEIA Confidential Information with the same degree of care as you use to protect your own information of a confidential or proprietary nature, but always with at least a reasonable degree of care. This obligation of confidentiality will survive termination and/or expiration of this Agreement for any reason.

10. LIMITATION OF LIABILITY. THE TOTAL LIABILITY OF AGEIA AND ITS LICENSORS UNDER THIS AGREEMENT FOR DAMAGES WILL NOT EXCEED $100 IN THE AGGREGATE. IN NO EVENT WILL AGEIA OR ITS LICENSORS BE LIABLE IN ANY WAY FOR INCIDENTAL, CONSEQUENTIAL, INDIRECT, SPECIAL OR PUNITIVE DAMAGES OF ANY NATURE, INCLUDING WITHOUT LIMITATION, LOST BUSINESS PROFITS, OR LIABILITY OR INJURY TO THIRD PERSONS, WHETHER FORESEEABLE OR NOT, REGARDLESS OF WHETHER AGEIA OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Some jurisdictions do not permit limitations of liability for incidental or consequential damages, so the above exclusions may not apply to you.

11. Customer and Technical Support. You will be solely responsible for providing customer and technical support to end users of the Physics Application for all features of the Physics Application, including those features that relate to integration, functionality or compatibility of the Physics Application with AGEIA products. AGEIA may provide you with technical support related to use of the PhysX SDK under terms and conditions as posted on the AGEIA PhysX developer website, which may, in AGEIA’s sole discretion, be changed from time to time.

12. Term of License; Termination. Your right to use the PhysX SDK will begin when you click the “ACCEPT” button below, which constitutes acceptance of the terms and conditions herein. The license is effective until otherwise terminated. You may terminate it at any time by destroying the PhysX SDK and all portions thereof, together with all copies in any form. If you fail to comply with any material term or condition of this Agreement and do not cure the noncompliance within 30 days of receipt of written notice of noncompliance from AGEIA, AGEIA may terminate your rights to conduct any further development under Sections 2(a) and (b) of this Agreement ("Partial Termination"). Upon Partial Termination, you will certify to AGEIA in writing that the original and all stand-alone copies, in whole or in part, of the PhysX SDK have been destroyed. Upon Partial Termination, you may continue to distribute any Physics Application that has been commercially released prior to such termination subject to prospective compliance with this Agreement. Upon any other termination, you will certify to AGEIA in writing that the original and all copies, in whole or in part, of the PhysX SDK have been destroyed, including those portions contained within any unshipped Physics Applications.

13. Governing Law. This Agreement will be governed by the laws of the United States of America to the extent that they apply and otherwise by the laws of the State of California, without reference to principles of conflicts of law.

14. Export. You agree and certify that no portion of the PhysX SDK nor any other technical data received from AGEIA will be exported outside the United States except as authorized and as permitted by the laws and regulations of the United States. If you have rightfully obtained the PhysX SDK outside of the United States, you agree that you will not re-export any portion of the PhysX SDK nor any other technical data received from AGEIA, except as permitted by the laws and regulations of the United States and the laws and regulations of the jurisdiction in which you obtained the PhysX SDK.

15. Assignment. You may not sublicense, assign or transfer this Agreement or the PhysX SDK except as expressly provided in this Agreement. Any attempt to otherwise sublicense, assign or transfer any of the rights, duties or obligations hereunder is null and void.

16. Survival. The parties agree that where the context of any provision indicates an intent that it will survive the term of this Agreement, then it will survive. All terms of this Agreement survive Partial Termination except Sections 2(a) and (b).

17. Entire Agreement. This Agreement contains the parties’ entire agreement regarding your use of the PhysX SDK and may be amended only in writing signed by both parties.

IF THE FOREGOING TERMS AND CONDITIONS ARE ACCEPTABLE TO YOU, PLEASE INDICATE YOUR AGREEMENT AND ACCEPTANCE BY CLICKING BELOW ON THE BUTTON LABELED “ACCEPT”.

IF THE FOREGOING TERMS AND CONDITIONS ARE NOT ACCEPTABLE TO YOU, PLEASE CLICK ON THE “REJECT” BUTTON BELOW.

PhysX SDK, © 2006 AGEIA Technologies, Inc. All rights reserved.

AGEIA and PhysX are trademarks of AGEIA Technologies, Inc. with registrations pending in the US Patent & Trademark Office and elsewhere. All rights reserved.

US AND INTERNATIONAL PATENTS PENDING.



Free:
* Commercial & non-commercial use on PC
--- Must keep registration information currect
--- Must agree to the EULA at the time of download (pops up, but is copied below)
--- Available for Windows & Linux (soon)
--- No PhysX HW support requirement
* PS3 platform (through Sony pre-purchase)
* All platforms through some of our middleware partnerships, such as UE3, Gamebryo 2.2, and others


This is really good news!

Anyone taken a look at the API yet? My account was approved this morning, but I haven't had time to look it over yet. I'm guessing no GCC version and hence an intermediate DLL required?

who's gonna code a nice ageia-wrapper for blitz/3d/max? i can't, 'cause i suck at c++ ;)

Yep, forget Newton and ODE :P

http://www.youtube.com/watch?v=dviWZcphcIQ

The cloth stuff in there is spectacular!

I do wonder how much is behind getting this working, though...
I guess I need to get the 3d engine talking to it in a rather particular way.
It looks like Minib3d, being just about the only currently active native (not wrappered) 3d engine, is the best bet for that.


This is a bit OT, but does anyone know if PhysX is being used for anything aside from a first-person shooter?
These physics are beautiful, but those huge-scale FPS games aren't a great showcase since they always have to cut corners somewhere :(

Eg: An open-ended smaller scale fighting game where animations are heavily affected by physics (so it's not just punch, punch, punch since the animations are altered in real time)... or a combat flight simulator.
Or a space flight simulator.

http://www.continuousphysics.com/Bullet/

Bullet looks interesting

The SDK is heavily C/C++ based, to the point where it's almost impossible to use with anything else. I'm paying someone to make a wrapper dll for me, but I don't know of anyone doing a publically available solution. It sure would be handy.

In what way? I'm reading the tutorials and it looks like something you could wrap quite easily with a bit of BlitzMax code and a bit of C, like I did the TV3D wrapper.

if you want a quick play theres NXOgre addon for ogre with some demos, and a gangsta wrapper that lets you use a general purpose physics API with any of the 5 popular physics libs including physxm ODE, Newton etc.

Physx is quite impressive and considerably faster than ODE and Newton with simple things like boxes. 1000 runs at about the same speed as about 100 - 200 in ode and newton.

Here is my (mostly uninformed) tak eon the current Physics APIs:

1. Havok is the best but only really available to $$$ developers. It comes inside Valve Source and 3DS Max 8,9

2. ODE is open source but has some issues with interpenetration and Collisions. Mark Sibly is using ODE for MAx3D's Physics (I think)

3. Bullet is nice but very new. It integrates with ODE and supplies much needed Collision routines. The Bullet developer(S) are/were Havok employees and are also working towards OpenPL (I think a high level Physics Abstraction Layer that will use whatever Physics capability the users PC has...Ageia board, Nvidia GPU/ATI GPU etc.)

It may be a good Idea for Mark to look at a Bullet/ODE hybrid solution.

another nice thing about Bullet is its support for the Collada format. This would make Physics Content Creation much easier (supposedly!) There is a 3DSMax exporter.

4. PhysX is on par with Havok in Quality and speed. It now has a FREE license for folks like us. They are pushing the Add-on physics board (which unfortunately has not gained alot of traction since Nvidia and ATI now both offer GPU based physics acceleration)
DarkPHYSICS upgrade to DarkBASIC Professional with AGEIA PhysX technology is $59.99.

5. Newton looks cool. It has a nice License and is stable/fast but lacks the polish of PhysX.

6 Tokamak looks DOA. it was windows only anyway so not a great fit for Max

IF MArk wanted to create a Module for PhysX, could he? could he do that and offer it to MAx Users? I am not sure? Would all Max users need to register with AGEIA seperately?

regardless, having a tightly integrated physics/collision system that works with MAX3D is important.

Without reading through the whole thing does the new PhysX EULA also allows you to use the engine for a commercial gamedev tool like blitzmax for instance?

I believe it does, but you can asak on the forum, their staff are good at answering questions.

So far it has been pretty easy for tool developers to use ageia. Thats how Garage games etc all got a licence for free.

Otee also made good experiences dealing with them. Now if only they would enhance their engine for the concave stuff...

Oh i missed that Torque swapped from ODE to PhysX.

Anyway any interest in this from the blitzbasic side?

Torque has no physics worth speaking of out of the box. Just some badly thrown together user resources :(

Oh i thought the they would use ODE. Well, not a big deal since torque is nothing i'm interested in.

Didn't Ageia buy out Newton?


I believe that was Meqon.

Yep, you're right.

So is anyone making some kind of public library or module to bring Ageia to either BMax or B3d? If I had less on, I'd take a look at it myself, but I really have too much work to catch up with.

Thanks for the feedback guys. I liked GIMPACT, and Bullet stuff for ODE, and Perhaps VIP3R will create some alternate ODE related products.

I'm satisfied with JV-ODE for now, and will continue to keep my eyes open as physics engines progress.

Thanks again for the positive feedback.