Wire to RBD feedback in DOPs


Normally if a wire is constrained to an RBD, the rbd isn't affected by the wire at all. Which is annoying ... but I had an idea to get it to work. the wire solver can store the internal forces on the geometry. In DOPs I made a point force, the position is set to the position of the constraint and the force is the wire's internal (linear) force. I have put a sopnet in the dopnet to get the wire and the constrained point so I can reference them in the point force. It could be simpler with a python expression to get the position and force directly without going through the sopnet, but this is just a little test...

For multiple attachment points, I think a copy data node could be used to copy the point force data for each constrained point ...

hip file here


Wire to RBD feedback forces from Sam Hancock on Vimeo.

Snapping Wires

Here is a setup that does snapping wires...

Wires are pre-cut and the cuts get constrained together, in DOPs a sop solver removes points from the constraint groups based on how much the edge length is stretched. The tricky part about this is that the groups have to correspond exactly so that the edges get constrained together properly...

In SOPs before the sim, each line gets cut in two with a carve SOP. One side of each cut is put into a group, and the other side in another group. I use these groups in the constraint in DOPs to constrain the cuts together. Also, the points in side 1 of the cuts has a 'partnerPoint' attribute which stores the point number of the point on the other side of the cut. This is so that the groups can be rebuilt later.

In DOPs there is a SOP solver to remove points from the groups. For one side of the cut, the edge length is compared to the rest edge length, if it is longer than a threshold the point is removed from the group. The second group is rebuilt using the first (now modified) group and the partnerPoint attribute.

The hipnc file is here


Snapping wires from Sam Hancock on Vimeo.

Deforming RBDs again!

In this one I have changed to adding up all of the impacts rather than the mixing that was going on with the attribute transfer in the last one. It is just a vopsop which loops through the impact points and adds up the deformation.

One problem I was having was when I deformed the object, the centre of mass was in the wrong spot. I couldn't figure out a good way to modify that in DOPs... so i ended up moving it in the sop solver, to get it centred again. Another problem was that the object wouldn't be in contact with the ground after it was deformed, so it would end up in mid air with no velocity.. so I added a move attribute in the sop solver, then in DOPs I used a modify data node to move the rbds. The problem with this is that for one step of the sim it would be hanging out in mid air, and then snap to the ground. I ended up just adding the move to P in SOPs after the simulation.... not great because the object isn't solved at that position. At least it doesn't snap into position... To make this less obvious I have done a few substeps on the dopnet.

Also added some displacements to add detail to the deformation. I had no idea how to do that for a while but I found a way which is pretty good. In the sop solver i have recorded the impact direction and impact amount, this gets accumulated. After the simulation I also added a compression attribute by comparing the rest edge length to the current edge length. In the shader I am getting P for the noise by doing ( rest + (impactDir * impactAmount)) so the noise compresses radially around the impact point, this is multed by the compression attribute. This worked better than I expected!

anyway, here is the video:




and the .hip file is here!

Deforming RBDs

Simple setup that uses a SOP solver and deforms the geo at points of impact. The impact data is already available in the SOP solver, the normal is the impact direction and there is a pscale attribute for the magnitude of the impact.

In this setup I just used attributeTransfer to get the impact data onto the mesh, then a vopsop to deform the mesh. There is a minimum impact so that resting objects don't get deformed. Also I divide the impact magnitude by the mass... the heavy box was denting itself from just resting there.



Houdini - Impact deformation for RBDs from Sam Hancock on Vimeo.
Might be better to have an additive effect for getting the impact data onto the mesh, rather than the averaging that goes on with the attribute transfer ... might try it later.

Also going to try getting some volume preservation going on!

.hip is here! (H11)

New paper sim

More paper stuff! Updated it, now using a SOP solver to modify the velocity. The last one was a field force which wasn't great.

Also this one projects the velocity vector onto the surface rather than just applying an opposing force like I was doing before. The velocity ends up perpendicular to the normal, with this: cross( nV, cross( nV, nN ) ). That is mixed with the original velocity to get more or less of the effect ...

In the linked .hip file there is a VIS_PROJECTION null that you can view to see what I mean...


Houdini - New cloth paper thingy! from Sam Hancock on Vimeo.
You can get the hip file from here (H11)

More old cloth wind resistance stuff.

Haven't posted in a long time, easing back into it with something I was playing with about a year ago ... it uses the same wind resistance stuff that I was using earlier.

Going to update it in the next few days with a much better way of doing it with a SOP solver!

Each piece of cloth is simmed individually, a wedge ROP is used to write out a geo sequence for each piece and they are brought back in using a file SOP and a copy SOP. The pieces don't collide .. but it doesn't matter so much with these .....

Wormie wire solver things.

Just another random thing.


Houdini - Wire solver worms from Sam Hancock on Vimeo.
This starts as some vertcal lines in SOPs that are animating upwards. The 'constraintoanimation' attribute is switched to 0 when the points go above the ground plane. This goes into the wire solver and thats about it ....

hipnc is here.

Share it