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.

Plastic Length weird behavior

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

best

alex

  • up

    Daniel Piker

    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).

    2
    • up

      ng5 Alex

      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.

      best

      alex