algorithmic modeling for Rhino

Kangaroo 0.044 is now downloadable from here:


There are some demo's included with the download, but I'll be posting some more here.


Here's one showing how to use the 'Sequence' component to output the entire timeline of a simulation in one go so that you can move back and forth with a slider.

Views: 7295


Replies to This Discussion

and here's the same thing showing how to trace the motion paths of the particles as curves.
Here's another demo of distributing points on a surface

But on an open surface with edges, the points cluster along the edges and leave a big gap between themselves and the interior ones:

How can I get truly even distribution like this?:

And how can I get distance based density while retaining the even spacing that affords nearly equilateral triangles, like your own example here?:

Here's a couple more demo files.

The first is a bridge with an adjustable time varying force, so you can get it oscillating Tacoma narrows style.

The second is a sheet material with bending, shear and stretch resistance, like in this video


seem to only be able to attach 3 files per post. here's the rhino file for that

Here's the same sheet demo as above, but with an addition to show the level of shear across the surface.
Hello Daniel,

Great demo files. Normally I work with Rhino.Script and Mathematica, I just started using Grasshopper.

My goal was to make a simulation of a tissue that is hung at some points and falls freely because of the gravity force.  Invert that (simply using + gravity) and make a thin-shell concrete model. 

I wrote this GH definition using Kangaroo (Particle String System_00). It's working pretty fine. However, I couldn't exactly figure out how the parameters of Kangaroo (Stiffness, Gravity and Rest Length) interact with each other and create the model.

For example, I know that the edge curves would be catenary curves.
Catenary Curve: f(x)=a.Cosh(x/a)
Arc length: 
s = 2a.sinh(x/a)
d=distance between the two points

Therefore, when we define the Rest Length, we define the S for a structure that the x and d is already defined by the anchor points that we put. I thought S would be calculated by x and a (The catenary constant.) What I mean is that it is just a simulation that shows the movement of a certain system with a certain but not reality.

I'm a bit lost. I would really appreciate if you can help me out a bit? I just want a simulation that functions with real gravity..

Thanks a lot. 

Hi Mete,

That mathematical expression describes the shape of an isolated hanging chain, but in general the edge of a grid of hanging chains will not be the same shape, because of the interactions between the connected chains.

There is not an equivalent way of directly calculating the shape of a general catenary surface, hence why we use an iterative method.

As for the rest length - the more slack we give the chain, the lower it will hang.

One subtlety when simulating this using springs is that they stretch by slightly different amounts, as the ones near the ends are supporting more weight, but we are applying an equal load to each vertex. To be more precise, we could iteratively update the loads at the vertices to reflect the segment length (and in the next release I might include something for this purpose).

However, if we make the gravity strength lower relative to the stiffness of the springs, this difference in length becomes smaller and smaller, at the cost of slowing down the simulation. Though we can easily make it less than 0.0000001%, and still solve at interactive rates.

I've attached a definition allowing you to compare the explicitly mathematically described catenary and the simulated one.



I am trying the bendsheet definition - For some reason when i switch simulation reset to false the mesh disappears.

Any ideas?



So, what's the deal with the bending components? I figured they're the ones that prevent the mesh from showing after the simulation, and without them the only efect is folding..Have you guys shed any light in the case?

Hi Daniel,

Thanks for the demo !

I am now trying the sheardisplay definition, but the mesh doesn't seem to react when I play with the anchor points ... Two elements might be the reason of this problem, but can't manage to solve them.

First, when I open the definition, i got the message "Input parameter chunk is missing",

and second; in the definition, on the kangaroo element, which is now red, it says :" Index was out of limit. It shouldn't be negative or inferior to the collection size. Name of the parameter : index"

I use Rhino 5 SR5 and Grasshopper 0.9.62,

Would you have any idea how this could be fixed ?



Whenever i reset the simulation to false the plane disappears.  I assume the points (anchor points) are not properly attached to the nodes but no matter how i attach it (baking the points) the plane keeps disappearing.  I would appreciate if you can help me.  






  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service