Buckling with kangaroo2

Hey there,

trying to simulate buckling by using kangaroo2. I used the “rod goal” and also the “angle goal”. It’s not working with the latter, with the first there’s some progress. I´ve got 7 goals constraining the system. These are: “unary force”, “anchor”, “rod”/“angle”, “direction”, “length(line)” and lastly “floor” and “drag” for testing purposes.

Check out the attached picture. Basically I want a curve that responds to gravity. Not so much interested in having something compress the “line/column” but to have it react to it’s own weight. Best to think of a tree for reference.

Free-fix-bucling

buckling_consult.gh (39.2 KB)

If I understand your goal, here’s one way to approach it:


aerial1.gh (17.4 KB)

1 Like

Hey up,
thanks so much for the reply. Nice move with setting the second point as an anchor too, by doing so you got rid of the “direction” goal.
As far as I can understand in your definition you are applying the same force vector to each point in the polyline, which although physically correct, results in something rather unreal as each point has exactly the same mass. In my first approach I tackle this by applying a weighting value to the points based on each individual point’s height. This could be so much easier if I could somewhere declare a mass for the points. But that would fix it either, as indeed all points in the polyline have the same mass, it’s just that the segment at the bottom has to compress more than that at the top as the first one has to deal with it’s own weight and also that of all the others above it.

Does your definition happens to solve that and I’m making a mess of all this?

Any remarks on my thoughts?

aerial2.gh (25.4 KB)

The wonderful thing about Kangaroo is that many “natural” phenomena emerge from simple definable goals and iteratively solving for minimizing energy (my very crude understanding). Along the “stack of equal weights” (verts) on the polyline, you can see that the lower you go, the closer together they get, as expected IRL:


aerial3.gh (18.4 KB)

But I do share your desire to be able to assign different masses to points in a polyline. This thread might shed some light, with a great explanation from @DanielPiker (the creator of Kangaroo). And here’s more.

1 Like