Sphere collision driven bending simulation

Hi everyone,

I’m trying to simulate a specific bending phenomenon mentioned in this paper with kangaroo:

There’s also a YouTube video showing the morphing process in you are interested:

As shown in the pictures below, a line of water beads were glued to the paper strip at the beginning, while the beads swelling underwater, the collision/squeezing between these spheres are causing the bending effect, and with different spacing between the beads, considering the time that takes for these beads start to reach each other, there would be different curvature results within the same time period; also as the time going on, the bending effect is getting more obvious.

And my goal here is trying to test this principle on some more complex shapes, here I had some promising physical experiment results with kirigami.


something similar to these, but triggered by water beads instead of a pulling/hinge power

I did some search work on this topic and found some relevant simulation:


post by @DanielPiker
For the beads part, although this is a simplified 2d model, this is the most close one I could found, however I had bad luck applying my pattern on it, the outcome just went zig-zag.

The main confusion here is how to set the anchor points, as they are free of moving underwater;
Another thing is that I’m not sure if the anchor point should be idealized as a single point(as in the 2d spline model) or actually a group of points regarding the way the glue was applied. I’ve also looked at this discussion below, where @DanielPiker post a resolution for open-open mesh and close-close mesh “intersection”, I’ve played with them happily, but for what I’m going to achieve here I’d suppose it to be a close-open (sphere swelling/strip ignoring thickness) combination, and with that the applied, the outcome just went like explosion.

I’m still not sure if it could be simplified to a 2d model just for circle packing and curve bending, because eventually I want to apply it to a kirigami simulation which forms a 3d shape.

I would be super grateful if anyone has any thoughts on how to build up this simulation, whether on a single strip or for a designed pattern.


SphereBending.gh (26.8 KB)


SphereBendingMultiRad.gh (28.4 KB)

Thank you so much for your help, your scripts simulate exactly what I’m working on!!! :star_struck: