Jump to content

Wire and RBD Packed Constraint network


MidshipCC

Recommended Posts

Hello everyone !

In order to model a ceiling mobile (such as the ones in a baby's bedroom), I dived in the depth of wire objects, and I feel like it is much less intuitive than the usual DOP workflow.

What I want to do is to tie certain objects (in my case, that would be origami birds modelled with the help of the amazing entagma tutorial from last week) to wires, which are tied to a static wooden part.

The part where I'm having issues is when it comes to tying together the solid objects (which come as a RBD packed object) to the wires. I've tried several methods, all of which have failed me for now.

1. I tried using the SBD pin constraint from the Wire shelf. It kind of works, but I still find it very hard to control, and it is impossible to simulate the physical behaviour of the whole system (I have to simulate the RBD packed objects separately, and tie the wires afterwards).

2. I tried the more classical RBD approach, using constraint networks. This is the approach I would prefer, since it allows me to simulate the full system. I have set up the constraints using a Connect Adjacent Pieces SOP, which I modified a bit to add the anchor_id attribute on the constraint points. All of my pieces, whether it be the RBD packed object or the wires, come as separate objects with their own unique names matching the name specified in the constraint points. However, when I play the simulation, the constraints do not tie the objects to the wires, and the wires go wild while the RBD packed objects fall due to gravity.

3. I've started looking at Vellum and other cloth simulations, but I'm very new to it and it doesn't seem to integrate very well to RBD workflow which I'm used to.

 

I've attached a hda with my project file, where I've replaced the bird objects with polygon spheres for simplicity. (It still doesn't work when I play it on my computer)

If anyone has the time to take a look at it and tell me what I'm doing wrong or put me on another track, I'd be super grateful !

 

All the best,

 

Nolan

 

 

Constraint_Wires.hdanc

Edited by MidshipCC
Link to comment
Share on other sites

From my (somewhat limited) experience I'd recommend trying out Vellum. I've never had great success combining multiple solvers live together, I think it just always makes everything more stable and easy to work with if everything is done by one and the same solver. To that effect, I've attached a super quick and dirty vellum setup of what I think you are trying to setup. When working with vellum like this the number one thing to keep in mind is to have stuff organized into groups so its easy to configure things separately and also for constraining things together later.

Hope it can help!

Vellum_Thingy_mnb.hipnc

  • Like 2
Link to comment
Share on other sites

Thanks a lot !

That looks exactly like what I want to do.
However I'm having a little problem, since the geometry I want to simulate is very detailed (a few hundred thousand points) and it takes forever to simulate in vellum as a cloth.
In RBD I'm not having this issue because it only simulates the convex hull, and if I want I can simulate a simplified geometry and use a copy to points after the simulation is done to retrieve the hi-res version of the geometry.

I've looked a bit but I can't find a way to do this with vellum. Do you know if there is a way to do so ? The idea would be to retrieve the results of the simulation as a cloud of points, each of them representing one of the spheres with its position and orient attributes, and then use a copy to points to paste the detailed geometry on the position of the spheres.

Link to comment
Share on other sites

Sure there are a few ways to do this, the thing I'd have a look at first is the "point deform" node. In my example above you could just use the same points I copy spheres onto to copy your high res mesh, then just plug in that high res mesh into the first port of the point deform, then use the "timeshift" to freeze the spheres at the first frame and plug the frozen spheres into the second port of the point deform, and lastly plug the moving spheres into the last port of the point deform. After then the high res mesh should be getting its motion from the low res spheres.
Of course, if you have a mesh that's a closer match to your final high res mesh inside the vellum sim instead of spheres that is preferable since the collision will be more accurate.

Sorry about the kinda weird written explanation, I'm not in front of a machine with Houdini right now so I can't whip up an example.

  • Like 1
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...