Jump to content

Automatic Presimulation of DOP Network?


s---70

Recommended Posts

I want to create a digital asset where I need to simulate pieces of a fractured object falling down to the ground to get a plausible initial "lying-on-the-ground" orientation for further processing. Is it somehow possible to simulate until a certain condition is met (for example all pieces are frozen) and then fetch that state as an object merge or something like that?

I am sure this is possible with python, but I'd rather take an approach that relies on the SOP dependency analysis alone if thats possible. Any hints would be very appreciated!

Link to comment
Share on other sites

Hi, not having Houdini in front of me, but you could create detail attribute on your Geometry data. Then inside wrangle you can compare positions from previous frame and compare it to a threshold. If the difference is larger then threshold, set detail attribute to 1. If there is no piece with larger difference in positions, then detail attribute will be 0. Maybe then you can somehow disable bullet solver by reading this detail attribute.

Just guessing - there is something like enable solver dop, is there a way to drive it with detail attribute of a Geometry data?

Link to comment
Share on other sites

Thx for the reply, what I did in the end was just to set the start of the simulation to -100 and fetch the first frame from the dopimport using a timeshift. Disabling the RBD solver with an enable solver somehow didn't affect my simulation speed at all (even though it was the only one), so this was the simplest solution. Would be great though to be able to simulate a DOP network as a time-independent cooking operation until some condition is met. I hope this will be possible in a future release.

Link to comment
Share on other sites

Kinda hacky but it might give you some ideas: presimTest_dv.hip

The idea is I set the threshold for automatic sleeping quite aggresive, so all pieces will fall asleep pretty quickly when they have fallen to the ground. The time when they fall asleep gets recorded as an attribute, I promote the max value of this and import that to chops. There I find the max value across the whole timerange, and finally use this value in a timeshift.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...