Grasshopper

algorithmic modeling for Rhino

Hi, I am doing some research for my master degree thesis in structural engineering about form finding and I am new with Grasshopper.

I was wondering if it is possible to do form finding with kangaroo and what are the methods in which it is based. I am studying the force density method for form finding and I was wondering if I could use Kangaroo for it. 

Thanks a lot in advance,

Roberto

Views: 2846

Replies to This Discussion

i think it is dynamic relaxation... but @danielpiker would be able to confirm... 

Hi Roberto,

"if it is possible to do form finding with kangaroo" - Yes, indeed this is the reason it was created! 

"what are the methods on which it is based" - as Shehzad correctly says, the Kangaroo solver uses dynamic relaxation (DR). This is an iterative method for finding an equilibrium solution where forces sum to zero at each node, and it makes use of momentum and damping to converge in fewer iterations.

In form-finding applications, the final static solution is generally the thing we are interested in, and the parameters for mass and damping are chosen in order to converge as quickly as possible, which is what distinguishes DR from being simply simulation of dynamics - the aim of most physics engines. However, since apart from this, the method is the same, the same tool can be used to do both with little change. 

While the solver is based on dynamic relaxation, the individual goals/elements/forces can be based on various principles.

This includes finite elements for simulation of elastic materials. Confusion sometimes arises because most of the time when people talk about FEM for structures, they are thinking of the direct stiffness method, but the formulation of the elements and the numerical methods used for solving the system can be separated.

Some of the goals in Kangaroo are also simply geometrical in nature, rather than based on physical behaviour. These range from simple vector calculations to mesh based and even NURBS based, such as the OnCurve goal.

Goals in Kangaroo can also be based on force-density (in a 1-d element the ratio of force to length). A length goal with target length zero is the same as a constant force-density element, since the tension force is proportional to the length of the line. Conversely, the ConstantTension goal (for finding minimum length networks) adjusts the force-density in order to achieve a constant force.

However, the term force-density method is used to refer not just to the formulation of the elements, but to a particular matrix method for solving the system (which is not used in Kangaroo). There are also many variants and extensions of it - nonlinear force density, updated reference strategy (URS), extended force-density, natural force-density and so on... I'm definitely not the best person to ask about the details and differences of these.

Anyway, in many (all?) cases, the force-density method or dynamic relaxation can be used as alternative techniques to find exactly the same solution.

These papers by Veenendaal and Block make some comparisons between FD, DR, URS and other methods:

http://www.block.arch.ethz.ch/brg/files/2012-ijss-veenendaal-block_...

http://www.block.arch.ethz.ch/brg/files/IABSE-IASS2011_Veenendaal-B...

Hi Daniel,

thanks a lot for your reply. It was so interesting and inspiring to me. 

As a structural engineering student I am currently studying all the methods you mentioned for my thesis, so I wrote some script in Matlab to try these methods.

Now I would like to put my Matlab's codes in practice and I am starting with Grasshopper and all of its amazing tools. I came across Kangaroo and now I would like to verify if my results with FDM or DR in Matlab are the same on Kangaroo. During these months I have started to do some research and I found some difficulties because tutorials and articles on Kangaroo and Grasshopper are mainly for architects than for structural engineers, so sometimes I didn't understand what were the methods in which these tools are based on.

Your reply was so useful to me and now I am more aware about everything. Thanks a lot again! 

Is it possible to find a guide about Kangaroo? I am starting with a project about cable nets and I hope I could use Kangaroo (I have 4 prestressed cables with 4 starting point and an ending point and I want to know the position of the final node having only the axial force on the starting ones and their positions).

Thank you again in advance for your time!

Roberto

Here's a simple example with 4 cables with prescribed tensions.

For a presentation of Kangaroo more from an structural engineer's perspective, you may also find useful Cecilie Brandt-Olsen's work here:

https://github.com/CecilieBrandt/K2Engineering 

Attachments:

Thank you so much Daniel! It's what I was looking for! 

Regards,

Roberto

Hi Daniel, 

I used your gh file and I have the same results of my code made on Matlab! Fantastic.

Now what I am asking to is if something has been changed on kangaroo in a new release since you created this gh file. I noticed that on the "Solver" in 'GoalObjects' I can only connect one canvas (for example anchor or constant tension, not both of them as in this file). Is there a new way to do it?

Please find attached the gh file.

Thanks in advance again,

Roberto

Attachments:

Nothing has changed in the way multiple inputs are connected - it still works by holding shift while connecting the wires.

It looks like the anchor points and the lines just got moved separately, so they are no longer connected. Make sure the anchor points are set to the ends of the lines (it is easier if the lines are baked into Rhino).

Ok Daniel, thanks a lot again! 

Regards,

Roberto

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service