algorithmic modeling for Rhino

Hello Daniel,

Plastic length behaves weirdly. It starts working ok, keeping elastic range, but after some successful plastic deformations and resets it stops working as expected.

Right after reset segments are deformed unexpectedly.

is something wrong here or am i missing something?

thank you



Views: 413


Replies to This Discussion

Hi Alex,

Sorry for taking so long to get back to you on this. Explanation follows, but for a quick solution just skip to the last paragraph.

Kangaroo behaves a bit differently from most Grasshopper components in the way that some data actually flows 'upstream' - the objects created in the Goal components actually get modified by the downstream Solver component when the simulation runs. This seemed necessary to allow the solver to keep track of particle indexing while also allowing modification of goal input parameters (or even goal code) during simulation.

Since this goes against the acyclic directed data paradigm of Grasshopper I've tried to keep this upstream flow under the hood as much as possible. However, for the goals involving plasticity this breaks down a bit, since the solver is modifying not only the particle indexing of these goals, but also the actual rest length parameters (which at reset you want to come only from the upstream input to the goal).

The more recent 'bomb' goal is also a bit like this, as its internal iteration counter is affected by the downstream solver, but there I've added a reset input on the goal itself, which you can connect to the same button you use to reset the solver, making sure it gets reset at the same time:

You've reminded me that I should really change the plasticity components to work in the same way, with a Reset input.

I'll do that for the next release.

In the meantime though, you can achieve the same effect by - when you reset the solver, select the PlasticLength component and use Ctrl-X,Ctrl-Z (to delete it then immediately restore it, but with its memory wiped).

oh no worries.

i see. i was playing around with breakable lines and i thought this might be the explanation.

Is there any benefit to have both line length along with plastic length component? i suspect not.

With your answer i though i might search for a custom data dam, i had used in another project, shared here by anders. I ve added the file.

it works as it resets the input. In case one needs to pause the simulation, a right click invert does the job.

Btw if there is an update scheduled please include the breakable lines component. If the implementation of breakable angle and hinge is easy, these too! I believe they could lead to interesting visualizations of failures.

thank you for the detailed explanation and support.




 Hi Daniel,

 thx for sharing this. Speaking about the PlasticLength I noticed there was an interesting post years ago:


In this post, you did mention about how it behaves between plastic/elastic...

One Thing I am still confused is that what do you mean 15.3/1.5 = 10.2m? What dose 1.5 mean?


Since a goal called 'PlasticLength' was included in newest K2 I am curiously if you are going to make some example about it?


Thank you in advances!!



for some reason my post got deleted. only the upload survived. so more or less that was the answer

no worries, thank you for you detailed reply.

i was playing around with breakable lines and i suspected that this might be the case. i have cheated a bit the delete-undo delete with a custom data dam shared by anders in a post (anyone having the issue see attached file).

fi there is an update coming, please consider adding breakable lines too, along with breakable hinge and angle, if they easy to implement. i believe these could be used for nice failure simulations.








  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service