Kangaroo 2: rigid and soft body

Hello. I’ve been trying to figure out how to make these soft bubbles react to the rigid surface on top, recreating the effect shown in the balloon image - like the squeezing out form. I would really appreciate if anyone can help me figure out what I am doing wrong :confused: thanks so much in advance!



As far as I can tell, there are a couple of issues with your geometry that prevent this from working:

  • two of the base curves that you generate the meshes for the soft bodies from already intersect on the XY-plane, which is quite tedious to remedy with Kangaroo, better take care of it before the simulation

  • you generate the soft bodies as mesh surfaces, which might work for the inflation but is probably problematic for checking soft body collisions

  • your rigid collider is an open polysurface, whereas the SPC (Solid Point Collide) component from Kangaroo explicitly relies on a solid

  • a specific situation with the geometry of your rigid collider produces non-manifold edges, which should always be prevented, simply add a tri in “front”

In order for this to work, I’ve slightly adapted the geometry of your rigid collider and merged all its coplanar faces. Then I extruded the corrected, open polysurface slightly to get a solid. The new geometry is internalised in the Grasshopper file.

2021-09-24 10-52-52.2021-09-24 10_54_25

Base curve intersections are now taken care of before the simulation. The soft bodies themselves are also closed, water-tight meshes, which I deem preferable.

You can adapt the edge lengths factor and pressure strength to get different results.

You can also get an even more precise result by dividing the soft body meshes more, but that also slows the simulation down quite a bit.

SOFT AND RIGID 2.gh (126.3 KB)


WOW!!! Works amazing! Thank you so much for your help and expertise :’’))))))) :pray: :pray:

I just have one last question :grimacing: is there any way to control the spilling of the soft bodies ?? like the image below the bubble spill through the rigid landscape instead of having a clear boundary. Thank you in advance :))))) Enscape_2021-09-24-19-41-162

What have you changed? It’s impossible to tell for sure without at least knowing some details! The definition that I uploaded above works fine for me.

In Kangaroo, it’s always about finding a state of balance between the different forces and goals.
If one goal is much stronger and opposed to another goal, it overrules it, and things tend to go astray moving forward. It’s always good to be patient and prudent, taking small steps.

It’s also absolutely imperative that your rigid body (i.e. topographical geometry) is a closed brep, closed polysurface, or water-tight mesh! If it isn’t, the SPC (Solid Point Collide) component can’t evaluate, whether points or vertices are colliding with the solid in question! It’s impossible for it to know what is inside and outside!

Hi there,

May I ask where can I download Kangaroo version 2.5.3? When I open your script, one component is missing from this version, but I cannot find it on Food4Rhino.




Hi @cocoyeung1019

There’s no need to download anything from Food4Rhino.
If your Rhino is up-to-date, then you should already have the most current Kangaroo included.
What version of Rhino are you using?

Hi Daniel,

I am using V7.2.2.

That’s quite an old service release. We’re currently on 7.13
If you update using Help>Check for Updates, you should be able to open the files without problems.

Thank you!