How does Kangaroo know what to do?

This image shows a “puffed up” hex grid that I want to use to morph onto another Brep surface:

I cobbled the following GH file together based on one I found online and my limited knowledge of how Kangaroo works:

What I don’t understand is how Kangaroo knows how high to make the puffs, and how does it know the direction to make them. The Anchor/T input is empty and it seems to me there should be the hex grid’s center points elevated to the desired height and location.

But the whole thing goes crazy if I connect what I think the target points should be to the T input. This seems like magic to me.

Puffer.gh (20.3 KB)

T is the tartget location for the same point set as you have in P. There are situations where this option helps with the setup.

I think you will need to find the right height manually.

I think the same as @martinsiegrist, since kangaroo is a particle spring system, which moves the points in an interaction of the parameters, you can’t predict a height, in my understanding.

Like trying around or get something close to and scale it to desired height.

Well gosh - this means Kangaroo is even more mysterious than I thought. What happens now is it overshoots the height shown in my photo, but then settles down to the height I showed. This looks like a good height to me, but I have no idea how or why it closed on that particular value.

It just seems to me that there should be a way to set the puffiness height. For instance, what if I needed a different height for each hex cell? Looks like I have to do more investigating.

I guess that’s a different goal than inflating.

You need to make sure the mesh cells are treated as singles not just one mesh

You can first refine your start to make the script run smoother (still using single pressure value*):
Puffer.gh (15.4 KB)



*For varying cells then provide a list of pressure values.
When the pressure was set to negative the inflation went ‘up’—but the reasons for that and all other kangaroo matters are of course best answered by @DanielPiker :slight_smile:

It’s possible to apply different pressures to different cells - you can supply a list of Strength values to the Pressure component matching the list of Meshes.
Form-finding is quite a different way to generate geometry, and it can take some adjustment. The shapes result from the iterated solving of the system of Goals. In your definition you have the boundary points of each hexagonal mesh anchored. There is no need to set the T input for these, because you want these boundary points to stay where they start out.
There are ways you can include things like target heights in the form-finding iteration, but if it’s simple explicit modelling you are after, it might be simpler to just model with SubD here.

Aha! So it’s the Pressure value that determines how puffy/high the result it. I had thought it would be the Target values. That explains a lot.

That makes me think there must be a way to set the tensile strength/stretchiness of the surface material that gets expanded by the Solver. I’ll have to do more reading about all that.

Would be nice, to know how. Do you mind giving an K2 example?