algorithmic modeling for Rhino



Kangaroo is a Live Physics engine for interactive simulation, optimization and form-finding directly within Grasshopper.

Read about the new release here

The Discussion Forum below is the best place to ask any questions about using Kangaroo.

(Please avoid posting questions on the Comment Wall, as it does not allow organization of replies)

Members: 2026
Latest Activity: 15 hours ago

You can read an introduction to the ideas behind Kangaroo here:

Kangaroo2 is now available for testing (see full announcement here). Please bear in mind this is still a work-in-progress, and features are still subject to change.

You can download it from here:

The 2.0 download includes a first draft of the manual and a collection of example files.

This thread contains some troubleshooting tips if you have problems getting it installed and working:

Some further example files for version 2.0 can be found here:

with more to follow - if there is some particular feature you would like more examples of information on please ask there.

The Kangaroo2 solver library is now separate from the Grasshopper components, and can also be referenced and used in scripts, either in the GH VB/C#/Python components, or in RhinoScript/PythonScript in Rhino. Questions about these can also be posted on:

Kangaroo2 is a complete rewrite, and the main solver/goal/force components are not cross-compatible with the previous version. However, you can keep both versions installed together allowing older definitions to be opened, and for now this is recommended, as there are also several utility and mesh processing functions relevant to both versions.

While v2 introduces many new features and improvements, not all the features from the old version currently have equivalents in the new version, but the plan is to add them all over time.

The links below are for the old version. More documentation and videos for the new version to appear soon.

example files(for version 0.099):

manual(for version 0.099):

getting started video:

demo videos:

Some more tutorial videos from EXLAB:

Discussion Forum

Length goal vs equal length goal - Kangaroo

Hi,Could anyone tell me what the difference is between specifying these two goals:(1) equal length goal(2) length goal with the target length as the average length of all linesThe reason I'm asking is that I want to equalise a number of different…Continue

Tags: equalise, equalize, kangaroo

Started by Sam Gregson 15 hours ago.

KangarooSolver.dll problem 4 Replies

HiI use a lot of Kangaroo and Kangaroo 2 without any problemI wanted to start scripting to write my own Goal objects and use Step by Step example file for Kangaroo 2. It seems I have got some problem with managing assemblies - even though I have…Continue

Started by Aleksander Dynarek. Last reply by Aleksander Dynarek 17 hours ago.

Inflatable in Kangaroo 2 1 Reply

Hi, i cannot find anywhere how to make an inflatable simulation with kangaroo 2.all examples are only for kangaroo to make a goal where force is being rotated as mesh is being modified(internal pressure), so it is contantly pointing as…Continue

Started by vladimir ondejcik. Last reply by Vincent yeung yesterday.

How to automate actions after waiting for K2 to converge for sequential input changes

Hello world,this is perhaps a broad question, but nonetheless I'd be extremely grateful of any help or pointers.For an arbitrarily slow/big K2 simulation with some variable input parameter (see file attached), I'd like to automate a downstream…Continue

Started by Gregory Quinn yesterday.

Bending resistance + twisting resistance? 3 Replies

Dear Group (and Daniel in particular I guess), I'm trying to use Kangaroo for simulating 3d-bending of a developable ribbon surface.Kangaroo…Continue

Tags: tapeworm, developable, kangaroo, twisting, bending

Started by Mårten Nettelbladt. Last reply by David heaton on Monday.

Kangaroo2 Spring Error 2 Replies

1. Solution exception:Unable to cast object of type 'Kangaroo.NodeClass.KSpring2' to type 'Grasshopper.Kernel.Types.GH_ObjectWrapper'.Hi All,I get the above error when attempting to connect a spring component from kangaroo 0.99 to the kangaroo 2…Continue

Started by nicebikemate. Last reply by nicebikemate Nov 19.

News and Updates

Force polygons of equilibrium structures

I have recently been exploring some reciprocal force diagrams using Kangaroo. From the 1869 paper by James Clerk Maxwell On reciprocal figures, frames and diagrams of forces : …to construct the Polygon of Forces, by drawing in succession lines parallel and proportional to the different forces, each line beginning at the extremity of the last. If the forces acting at the […]

Minimal surface puzzle

The top row shows three different minimal surfaces from the same boundary curves. The bottom row shows the same 3 surfaces rotated and in a different order. Which number corresponds to which letter?

Orthogonal Clustering

I’ve always aimed to make Kangaroo a specifically architectural physics engine. While it shares many characteristics with similar engines used for other purposes, such as games and animation, it has some features that are uniquely suited to designing buildings. Form-finding and physics-based-modelling often result in curved shapes, with an elegant and natural appearance which is something […]

Variation from Uniformity

All of these triangles are identical and equilateral: In architectural geometry over the last few decades, a common topic of research has been how to build and clad doubly curved surfaces in an efficient way. While computer aided manufacturing has made it possible to make buildings where every panel has slightly different dimensions, there are […]


      As regular readers of this blog will know, I’m passionate about the use of relaxation and force-based methods for optimizing geometry in a very interactive way. There is a great variety of form-finding that can be done by assigning physical forces as interactions between sets of particles. However, in my investigations so […]

Comment Wall


You need to be a member of Kangaroo to add comments!

Comment by Miguel Vidal on August 23, 2013 at 1:47am

Hello everybody,

Could anyone please recommend some (accessible) bibliography on the geometric and physical notions of Dynamic Relaxation?

Many thanks in advance!

Comment by Jimmz on August 22, 2013 at 9:39pm

It seems Rhino5 SR5 64bit,grasshopper 0.9.0056 could not run the kangaroo 0085,I can't see the icon of the kangaroo,and always a loading error bufore access in the grasshopper window.But I'm sure I had copy the .gha and .dll into the libraries folder,So I wanna know the reason

Comment by Michel Cassagnes on July 11, 2013 at 6:39pm


I begin with Kangaroo. I am trying to model a movable roof made with mesh articulated at some edges (I used hinges). roof is moving on a plane, so I constrained some points to remain at z=0. I have turned around for hours, studied examples that I found here, but I cannot make my model run. I need some help.

Best regards,

Comment by muhammad fachrurrazi on June 27, 2013 at 5:01am

hello guys, i have problem with Plaw component. i dont know why its not working again but nothing error report. thanks for your help

Comment by Andrei Raducanu on June 5, 2013 at 9:33am

do you reckon a anti-funicular shape is still the way to go if you have an assembly system like the Boxel Pavilion, where the "bricks" aren't aligned to the surface but stay vertical (therefore the compression force isn't perpendicular to the modules' faces, but comes at an angle)? hopefully somebody with structural knowledge can enlighten me...


Comment by Andrei Raducanu on June 5, 2013 at 7:56am

hey, all!

do you guys know of a method that can be used when you want to convert a brep into a mesh with fairly uniform faces (in size and shape), which is what i guess is needed when doing anti-funcular simulations... Thanks a lot!

Comment by Dmitry on May 16, 2013 at 4:00am
Comment by Dmitry on May 16, 2013 at 3:53am

Hello Daniel !
sorry for may ask same question again  , but I cannot found solution how to fix it .
the target is to make limit border of shape for circle paking  .
I add some button  to script , which I load from your blog , for make possibly use different  diametr of circle . now it can paking , and each circle stop when reach border of surface by it's center.
but I would like to make  circle stop when reach border of surface by it's outline .
is it possible to do something in this script , for it work as I need ?

Comment by Daniel Piker on March 28, 2013 at 2:42pm
Hi Ben, this is great to see. I'm glad it was useful for you, and thanks for sharing
Comment by Ben Howes on March 25, 2013 at 1:45pm

The ACM Group at Thornton Tomasetti used Kangaroo as a platform for facade form finding on a project with 360 Architecture.  Check out our blog for a detailed description of the project, and have a look at a partial form finding run in the video below.



Search Grasshopper


  • Add Photos
  • View All

© 2015   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service