Kangaroo

THIS FORUM IS NO LONGER ACTIVE. PLEASE POST ANY NEW QUESTIONS OR DISCUSSION ON:

https://discourse.mcneel.com/c/grasshopper/kangaroo

The discussions here are preserved for reference, but new questions posted here are likely to go unanswered.

Kangaroo is a Live Physics engine for interactive simulation, optimization and form-finding directly within Grasshopper.

..plasticity in springs

Hi,

I am a bit confused with the plasticity Input for Springs in Kangaroo. Maybe somebody could answer me some general questions?

The plasticity is a factor of the rest length, right? I understand it like this: it takes the spring with its length, that is given through the mesh geometry and pulls it toward its rest length. now what is the initial value for the plasticity to act? the rest length or the actual line length?

an example:
My mesh edge is 1.5 m, the rest length is 1 m and the plasticity is 0.5

does it take the rest length of 1 m as the initial value and says: "if the spring (by any reason) gets shorter than 0.5m  (1-1*0.5)  or longer than 1.5m  (1+1*0.5),  i will stop pulling."

or does it say: "my spring is 1.5 m long. if it gets shorter than 1m  (1.5-1*0.5)  or longer than 2m  (1.5+1*0.5),  i will stop pulling"

and how does it alter the rest length when the deformation exceeds the given value? does it increase or decrease it in steps? which value does it choose as the new rest length?


thanks in advance
benjamin 

  • up

    Daniel Piker

    Hi Benjamin,

    I'm glad to see someone is taking an interest in the plasticity function, as I've not heard much about people using it so far, and I think it is a feature with a lot of interesting potential.

    It works as a factor of rest length.

    Say you have a spring with rest length R of 10m and plasticity P of 0.5

    If you apply forces which stretch your spring to an actual length L of 14.9m (or compress it to 5.1m) it will still return to 10m once those forces are removed. Also if you give it a starting length of 14.9m it will try and reach its natural length of 10m as soon as the simulation starts.

    If you apply forces which stretch the spring to 15.3m, so that

    abs(L-R)P

    it behaves plastically. So it will alter it's rest length to put it right back on the limit between plastic/elastic. Which in this case would be 15.3/1.5 = 10.2m

    If we then release the spring its length will return to 10.2m

    If we were to continue stretching so that its length became 15.6m, then its rest length would increase again to 15.6/1.5 = 10.4

    These adjustments of rest length actually happen at every iteration, so in practice the difference between actual length and rest length will never go more than a tiny amount beyond R*P, and only for one timestep before being altered.

    I hope that helps clear things up

    3