Dops ODE Solver Updated

   5664   7   3
User Avatar
Member
29 posts
Joined: July 2005
Offline
(Note: this is cross posted over on OdForce)

Hello All,

I've updated the source code in CVS and released a new package to download with the latest changes/additions. I've done a bit of work on it in my spare time with the hope that it would spur some interest and contributions from other people in the Houdini comunity.

The project page is:

http://sourceforge.net/projects/odforceplugins [sourceforge.net]

You'll also need to download ODE to compile this (you can get pre-compiled version of ODE which makes this easy)

http://ode.org/download.html [ode.org]

I've included a sample .hip file in the archive that outlines the features I've added. There's still a lot that can be done to improve/extend the solver and any feedback is appreciated.

There's a bit more info (and some pre-compiled plugins) over at OdForce

http://odforce.net/forum/index.php?showtopic=3733&hl= [odforce.net]

Thanks

Daniel
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
7025 posts
Joined: July 2005
Offline
Very cool. I'm curious, what advantage does it have over the Houdini RBD solution? I got a cube to drop and bounce pretty much just the same )

Also, I can contribute a RH EL4 compile, but it'll have to wait until the next SESI “production build” since 8.0.474 is long gone from my machine…

Cheers,

Peter B
User Avatar
Member
557 posts
Joined: July 2005
Offline
Peter -

I think it's just very much faster. Because it only works on primitives, if you can describe your simulation objects that way, you can get a quicker result. Possibly you could use this to block out what you are trying to do more quickly, then switch to the regular RBD solver to get the rest of the advantages of DOPs.

Plus, it's a good academic exercise for fitting 3rd party solvers into the DOPs architecture…
User Avatar
Member
7025 posts
Joined: July 2005
Offline
Hi Craig,
Cool, I haven't really read up on it, I didn't realize it was only primitive based, which makes sense it'd be faster then. I agree, getting people interested in more solvers is highly desirable )

Cheers,

Peter B
User Avatar
Member
29 posts
Joined: July 2005
Offline
Hey Peter,

Yes, Craig is right. ODE has a very limited number of prim types it works with (box, sphere, capped cylinder, ground plane). Each type can be described as an implicet… so testing for collisions (if you're inside an object) is trivial and fast. You can build more complex shapes with “composite objects” which is a group of prims linked together to make a single rigid shape. There's an example of this in the hip file I provided with the download.

My understanding is Dops, by converting geometry to an SDF also works on implicets, so it's similar.. but broader in scope.

ODE is used in realtime games.. it's fast. Prior to having Dops we simulated about 14,000 bodies (a pile of coal) on Polar Express with ODE.. took about 1min a frame (all sphere prims). It's currently not practical to sim that many objects with the DOP's RBD solver. There's an example in the sample hip file showing about 400 bodies in a brick wall which show's the speed. You can substitute the Dops RBD solver for a comparison. ODE is a bit slower the way it's intergrated into Dops currently, but I think that will improve as we intergrate it better. Part of the slowdown is as I step the world in ODE I have to update all the Dop bodies..so there's an extra step to hand the “state” of the world back and forth between ODE and Dops. I'm guessing some of that workflow can be improved

There are other free Dynamic Solvers out there as well.. and given this Dop Solver code as a framework I think adding support for other systems would be farily easy. Each system has it's strengths depending on what you're trying to do

http://physicsengine.com/index.html [physicsengine.com]
http://www.tokamakphysics.com/ [tokamakphysics.com]
http://www.continuousphysics.com/Bullet/ [continuousphysics.com]


d
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
7025 posts
Joined: July 2005
Offline
Hi Daniel,
Interesting, the Teapot with the scatter is a cool idea, accurate enough to look correct for sure. I'd love to get into this, but my HDK experience so far is writing a couple of custom commands, and those took forever ) I know, practice makes perfect, but no time to practice, sadly. It is very nice to see more “plugins” being made for Houdini, releasing the HDK for free was a great decision I think.

Cheers,

Peter B
User Avatar
Member
29 posts
Joined: July 2005
Offline
Understanding the hdk api for this plugin was challenging for me. The initial code from mark tucker was a big leg up and just had to hunt and peck though the headers to piece it all together. Running doxygen on the include files was pretty essential for me to help link all the various classes together. It was certainly a big learning experiance.. The more I do the easier it gets. Definatly practice makes perfect, what seemed daunting a year ago is clear to me now. I still have a lot more to learn for sure
D
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
6 posts
Joined: July 2006
Offline
Hi,

I've started trying to get this to compile on Houdini 9.5 at home - Apprentice on a macbook pro.

After commenting out the typedef that the docs mention, I still get a bunch of errors and then a failed compile.

Anyone know if this still works for H9.5?
  • Quick Links