The Open Dynamics Framework
by Dylan Sale · in Torque Game Engine · 01/13/2005 (12:40 am) · 29 replies
Hello fellow Torquers.
Recently I decided that I would work on getting full physics integration into Torque, with everything you would expect from it such as Rag Dolls, vehicles, crates, zones with different physics properties (ala HL2 energy columns with low gravity and linear+angular dampening, those ones at the end you can throw guys in ;) ). Also getting this working over the network properly with optimized code and whatnot.
Having done a fair bit of work with integrating ODE I thought I might try extending the ODEItem I have previously worked on with Pascal Rettig. But while researching other engines, I came across the Open Dynamics Framework.
It looks interesting. A generic interface to physics engines that can then have a dll to written for them to interface with the framework. Essentially, I would write all the torque code to the framework and then people could choose the engine they wanted (based on licensing costs, performance, or whatever). I figure this would be better than just supporting one engine, not to mention the third party support such as exporters to its physics format and whatnot for MAX and Maya, as well as its simple scripting language.
Im posting here to show my intent, see what people think and just get some general feedback. If anyone wants to help or has done something similar then I am all ears.
I may end up making this a physics pack of some sort, but for now it is just a project to work on.
Recently I decided that I would work on getting full physics integration into Torque, with everything you would expect from it such as Rag Dolls, vehicles, crates, zones with different physics properties (ala HL2 energy columns with low gravity and linear+angular dampening, those ones at the end you can throw guys in ;) ). Also getting this working over the network properly with optimized code and whatnot.
Having done a fair bit of work with integrating ODE I thought I might try extending the ODEItem I have previously worked on with Pascal Rettig. But while researching other engines, I came across the Open Dynamics Framework.
It looks interesting. A generic interface to physics engines that can then have a dll to written for them to interface with the framework. Essentially, I would write all the torque code to the framework and then people could choose the engine they wanted (based on licensing costs, performance, or whatever). I figure this would be better than just supporting one engine, not to mention the third party support such as exporters to its physics format and whatnot for MAX and Maya, as well as its simple scripting language.
Im posting here to show my intent, see what people think and just get some general feedback. If anyone wants to help or has done something similar then I am all ears.
I may end up making this a physics pack of some sort, but for now it is just a project to work on.
About the author
#2
Eul0gy
01/13/2005 (9:45 am)
Hey i have been looking currently into integrating novodex into torque but im now looking at putting in ODF first would like to lend a hand where ever possible Eul0gy
#3
01/13/2005 (2:22 pm)
Check out Chris Calef .plan if you havent already, he is doing the same thing. Perhaps you two could get together and really knock this thing out.
#4
01/15/2005 (3:43 pm)
Cross-platform...
#5
Whether or not it is useable over different platforms depends on the physics engine and if there is a dll (or so) so link to it.
01/16/2005 (4:00 am)
Indeed it is cross platform... If that was a question? The framework itself is cross platform but the example app uses directx 9. They are porting it over to OpenGL however.Whether or not it is useable over different platforms depends on the physics engine and if there is a dll (or so) so link to it.
#6
Is it in the installer? I had sort of hoped to avoid having to download another file. :) Browsing stuff online is nice.
01/16/2005 (4:55 am)
Man, where do they keep the header files? I can't seem to find 'em anywhere. :-/Is it in the installer? I had sort of hoped to avoid having to download another file. :) Browsing stuff online is nice.
#7
As per the site http://www.physicstools.org/forum1/20.html, "Additional components that are required to compile and link ODF Rocket are the DirectX 9.0C Summer SDK release and the Novodex 2.1.2 SDK."
As per the site http://www.novodex.com/licensing.html, "NovodeX Physics SDK and NovodeX Rocket are licensed to you free of charge for non-commercial use. The licensing conditions come along with the installer. Please contact us through info@novodex.com if you would like inquire about using the NovodeX Physics SDK orNovodeX Rocket in commercial projects."
It is not cross platform. It is uses DirectX. I am sure with alot of work the DirectX can be ripped out and something like SDL used but it is for Windows today.
"ODF Rocket is currently a Windows DirectX 9.0C application. Much of the source code in the project can and should compile under Unix but has not been tested yet. At a later date we will try to produce an OpenGL / Unix implementation of the project."
Don't get me wrong the product looks most interesting. I am downloading now to look into it further. I am just one who walks slowly is all.
01/16/2005 (5:52 am)
But what does this cost compared to other Physics engines for commercial use?As per the site http://www.physicstools.org/forum1/20.html, "Additional components that are required to compile and link ODF Rocket are the DirectX 9.0C Summer SDK release and the Novodex 2.1.2 SDK."
As per the site http://www.novodex.com/licensing.html, "NovodeX Physics SDK and NovodeX Rocket are licensed to you free of charge for non-commercial use. The licensing conditions come along with the installer. Please contact us through info@novodex.com if you would like inquire about using the NovodeX Physics SDK orNovodeX Rocket in commercial projects."
It is not cross platform. It is uses DirectX. I am sure with alot of work the DirectX can be ripped out and something like SDL used but it is for Windows today.
"ODF Rocket is currently a Windows DirectX 9.0C application. Much of the source code in the project can and should compile under Unix but has not been tested yet. At a later date we will try to produce an OpenGL / Unix implementation of the project."
Don't get me wrong the product looks most interesting. I am downloading now to look into it further. I am just one who walks slowly is all.
#8
ODF is a framework... it appears they haven't really tested it cross-platform, but they believe it'd be an easy to port to Unix (therefore Linux and OSX shouldn't be far off). Dylan and whoever else is interested in this will have to evaluate that belief for themselves.
ODFRocket is an example application that uses ODF. ODFRocket apparently uses DX9 for rendering and hooks up with Novodex for physics. ODF itself can, apparently, work with Novodex or ODE, or... what have you. Essentially, it's an abstraction layer.
The ODF framework itself is totally free of charge and has no license restrictions, according to the site. So, no worries there.
I / we haven't looked at ODF's design or the implementation as yet, but it's certainly something to investigate when we get time. I'll be interested to see what Dylan thinks about it as he digs deeper, and I agree that hooking up with Chris Calef might be a great idea.
Regardless, I'm glad to see your working on physics integration Dylan. ODEItem is cool. We'd all love to see even better physics in Torque, so keep us up to date as you progress. :)
01/16/2005 (4:26 pm)
Bryan, I think you're getting confused on a point: ODFRocket (the example app) is different from ODF itself. The confusion is really the site's fault, it's not very clear what's going on.ODF is a framework... it appears they haven't really tested it cross-platform, but they believe it'd be an easy to port to Unix (therefore Linux and OSX shouldn't be far off). Dylan and whoever else is interested in this will have to evaluate that belief for themselves.
ODFRocket is an example application that uses ODF. ODFRocket apparently uses DX9 for rendering and hooks up with Novodex for physics. ODF itself can, apparently, work with Novodex or ODE, or... what have you. Essentially, it's an abstraction layer.
The ODF framework itself is totally free of charge and has no license restrictions, according to the site. So, no worries there.
I / we haven't looked at ODF's design or the implementation as yet, but it's certainly something to investigate when we get time. I'll be interested to see what Dylan thinks about it as he digs deeper, and I agree that hooking up with Chris Calef might be a great idea.
Regardless, I'm glad to see your working on physics integration Dylan. ODEItem is cool. We'd all love to see even better physics in Torque, so keep us up to date as you progress. :)
#9
The site says you need Novodex because that is the only plugin dll that is currently in working order. They have one for ODE, but it was broken at the last release and no one has submitted a fix for it yet.
01/17/2005 (12:30 am)
Damn work has been keeping me busy, but I have some free time now so I'm going to have a good play with ODFRocket and try and work out what needs to happen for this to work. There as a sad lack of documentation for it at the moment, but the forums do seem helpful.The site says you need Novodex because that is the only plugin dll that is currently in working order. They have one for ODE, but it was broken at the last release and no one has submitted a fix for it yet.
#10
01/18/2005 (12:23 am)
Garr, where are the headers? This sounds awesome but I can hardly have an opinion until I've looked at the code! :)
#11
There is a bunch of projects in the ODFRocket download. Sadly it seems that all the demos are made to run with novodex (although there is really no novodex specific stuff in there, its just the naming scheme). Aside from that I think it is a bit lacking in documentation.
I'll give it more of a look later on, see if I can figure out how to use it.
01/18/2005 (12:56 am)
Its in the download file, under includes. Its not really very standalone as a library or anything. Which is kind of a drag :/ The code is all over the place kinda, though it seems like they are making a concious effort to make it easier to integrate into other engines.There is a bunch of projects in the ODFRocket download. Sadly it seems that all the demos are made to run with novodex (although there is really no novodex specific stuff in there, its just the naming scheme). Aside from that I think it is a bit lacking in documentation.
I'll give it more of a look later on, see if I can figure out how to use it.
#12
01/18/2005 (11:04 am)
I have newton starting inside Torque, just wondering/working on how to make it work with an object ^_^.
#13
01/19/2005 (12:02 am)
Its a pretty complicated procedure... Look at the vehicle code for some insight...
#14
Cheers
01/19/2005 (2:46 am)
I'd be very interested in getting into this. Whoever is heading this can you give me an email, or post here?Cheers
#15
Anyway, I will try to take a look at this sometime. I wish they had the headers or docs up somewhere I could get to them without hassle. (Yes, I'm a lazy SOB who thinks that downloading a file is a hassle... sorry! :)
01/19/2005 (12:45 pm)
Bear in mind there's a BIG difference between "physics" and "networked lag-free simulated controllable objects". A good physics implementation is only a small part of the problem in that case. :)Anyway, I will try to take a look at this sometime. I wish they had the headers or docs up somewhere I could get to them without hassle. (Yes, I'm a lazy SOB who thinks that downloading a file is a hassle... sorry! :)
#16
01/20/2005 (12:08 am)
Yeah, I know that only too well. My work with the ODEItem showed me just how much of a difference hehe. After reading a fair amount of material on getting synched networked physics, I think I could pull it off. Maybe ;)
#17
01/20/2005 (10:20 am)
.
#18
Our first priorities right now are tools (with TGE/TST and other projects) and graphics (in TSE). We do want to spend some time on physics, but they're much less critical to a lot of games, high game-specific (so it's hard for us to do a generic solution) and relatively easy for 3rd parties to integrate (RigidItem, ODEItem, Brett Fatori's helicopter physics, etc. etc. etc.).
01/20/2005 (11:22 am)
Amazingly, ODEItem was written by a community member... Not only that, there is about a 90% chance (I haven't looked at the code recently) that you can port it to TSE in less than six hours.Our first priorities right now are tools (with TGE/TST and other projects) and graphics (in TSE). We do want to spend some time on physics, but they're much less critical to a lot of games, high game-specific (so it's hard for us to do a generic solution) and relatively easy for 3rd parties to integrate (RigidItem, ODEItem, Brett Fatori's helicopter physics, etc. etc. etc.).
#19
If nobody has ODEItem working with joints by the time I get a whole lot of other work done on the rag dolls, I might end up there, but I sure hope somebody else has done it already!! :-)
Great work Dylan, glad to see you pushing the envelope on this!
01/20/2005 (11:39 am)
Hey Dylan, and everybody else who's interested in rag dolls... just wanted to throw my two cents in here. I'm not really involved in ODE integration right now as much as I am in making a functional straight up rag doll in ODE, based on the player skeleton, with appropriate joint constraints, working collision detection, etc. For now I'm just outputting the animations to DSQ. If nobody has ODEItem working with joints by the time I get a whole lot of other work done on the rag dolls, I might end up there, but I sure hope somebody else has done it already!! :-)
Great work Dylan, glad to see you pushing the envelope on this!
#20
01/21/2005 (12:16 am)
.
Torque Owner Charlie Malbaurn
It still breaks down to cost though. Those who are truely interested in the tech will figure out a way as long as it is within reason.
Good luck with it. This post is going into my shortcuts :)