algorithmic modeling for Rhino

Hi all,


I'm pretty new to Kangaroo and I'm trying to work out how various objects and structures respond to differnernt forces, mainly unary force for gravity and some spring stuff within the structures.


I was wondering if there is a unit kangaroo uses for mass and for force (g and N?)  or a conversion ratio of some kind?  Or am I fundamentally misunderstanding how these work in Kangaroo?  (I've searched the forums...etc, and just can't seem to find an answer.)


Many thanks for your help and consideration!



Views: 3750

Replies to This Discussion

I am afraid that Kangaroo dont use any exact units system.

Not so! - See my answer below. I've just never gotten around to writing them up until now!

Let's see, it's just a question of being consistent...

Assuming your Rhino dimensions are in metres (m),

then your mass is in kilograms (kg),

and your force in newtons (N)

Then for your axial spring stiffness use EA/L 

where E is Young's modulus in pascals (Pa)

A is cross-sectional area in square metres (m2)

and L is the length of your spring in metres (m)

and timestep is in seconds (s)

a few things to bear in mind:

The speed at which your simulation runs at might not be 1 second per second, depending on the complexity of the simulation, the speed of your computer and the timer delay setting. Multiply the timestep by the iteration count to get the time which has elapsed in your simulation.

Using true values for E corresponding to stiff materials such as steel will often cause problems with simulation stability, unless you reduce the timestep and/or increase the mass of your particles (often necessarily by several orders of magnitude).

Remember that this inertial mass is separate from gravitational mass, and will not affect the final displacement of your system, only how long it takes to get there, so you can use a high fictitious mass to keep the simulation stable without changing things like the final displacement of your structure. This is a common technique in dynamic relaxation.

For loads due to gravity (in m/s2), multiply the true mass of your particle by 9.81 (or thereabouts, depending on where exactly you are!) and apply it as a Unary force to the particle (for a linear element, just apply half its weight to the particle at each end).





That's brilliant, thanks Daniel, really appreciate it, time to dig out my old tables of moduli!  As a more general side note, Kangaroo is ace, cheers for that also!

All the best!


When we are using meter for length, E is in Pa or GPa?

For example E for Steel= 200 GPa, if A=0.2 m2 and L=1 m, K= (200 x 10^9 x 0.2) / 1  Does it make sense?!!!

For those using non-metric, Alternate units seem to work as ft for length, force, kips, Area (ft^2). Or, use # instead of kips: Depend on E, G, etc. ;)

As long as you are consistant with the units throughout, it should all add up.

Also, increase of the particle mass does help the system converge when stiffness values get larger.

I though that additional mass particle meant more load in the model, but no, only inertial.

Very Cool Work DP!

Hello, Daniel,

Could you, please, add to what is said above how are the shell strength (or hinge strength) and bend strength calculated in Kangaroo 099, and Strength in "Angle" and "Rigid body" components in Kangaroo 2?




I have made a Layout file for using Kangaroo 0.099 and Kangaroo 2.1.4 with real units.

I get reliable solution for both of them. 

If is it correct, It´s free for sharing.


I got one question. If you want the geometry structurally consider like a shell, how you calculate the cross section for the A? For example: Thickness of Concrete shell is 4cm, can you use for your cross section 0,040m2 ? For Stiffness: 0,040*E/L ?

Thank you.


Dear Daniel,

Thank you for these precision.

Do you know what is expected for BendStrength in Bend component ?

I've put E*I but the result is not corresponding to the reality ?

Thanks in advance

Hello Daniel,

First: Awesome job, keep it up, I'm in the business of CAD software and I can tell you, your tool is high above the others.

Now on the topic:

I am a fairly new user of grasshopper overall, Kangaroo as well. What I cannot comprehend is how exactly does the Unary Force work. Let's simplify you apply a force on a point, but that needs a Mass component, right? F=m.a, you have the "a" by the vector and it's factor, but where's the mass? Is it related somehow to the dimensions of the object (RigidBody)? How can I change it, is there a definition of a Material (structural not graphical) and specific density? Maybe I'm missing a user component, I don't know.

Could you also suggest a grasshopper plugin or algorithm to make kangaroo simulation run realisticly time with respect to iterations?

Consider a Free Fall of different objects for example. Although, mass isn't important in that particular case, but time is.

Thank you in advance.

Hi Zooid,

The unary force is simply the force applied - so it is not dependent on the mass. If you want to apply a load proportional to the mass of an object you need to apply this multiplier (this could be based on the volume of the object multiplied by a known density of the material) before feeding the resulting vector into the Unary component.

Thanks for the quick reply Daniel,

I see, so I wasn't missing anything, what I was doing is just multiply the gravitational acceleration (the z vector) by the supposed mass (in kg) of the object.

I have other questions as well concerning the project I am doing but I'll open another thread for that.






  • Add Photos
  • View All

© 2018   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service