algorithmic modeling for Rhino

Example files

edit 29/04/14 - Here is a new collection of more than 80 example files, organized by category:

This zip is the most up to date collection of examples at the moment, and collects together a wide variety of definitions made for various workshops and in response to forum questions. Thanks to all workshop attendees and forum members for your valuable input.

It is possible I've missed a few useful ones. If there is something else you'd like to see included please let me know

The examples below are mostly older, but I will leave them here for now until I am certain all the same topics are adequately covered in the 'official' collection above.


Showing how the trail component can be used to trace the motion of moving particles





The wind component acts on sets of 3 points (typically each the vertices of each face of a triangulated mesh). It applies a force to each vertex, proportional to its area multiplied by the projection of the wind velocity vector onto the triangle normal.




CurvePull - Pulls particles onto a curve. This can be either a hard or soft constraint. Useful for fixing the boundary curves of tensile surfaces, yet allowing the nodes to slide along that boundary.




The Vortex component rotates one particle about an axis defined by 2 points.





Align Pulls two line segments towards being parallel.




Planarize takes 4 points and pulls them towards being coplanar


Planarity measures how planar a quad defined by 4 points is (it returns the shortest distance between the two diagonals).



Equalize adjusts a set of lines towards having equal length (it finds their average length, then treats each line as a spring with this as the rest the length). This demo shows how it can be used to make a quadrilateral circular (the 4 vertices lie on a common circle). Meshes made up of circular quads have a constant distance vertex-vertex offset mesh. (see



Laplacian acts on a central vertex, and its ring of neighbouring vertices. It finds the average position of the neighbours, and moves the central vertex towards this point. It also divides the same force up between the number of neighbours, reverses it and applies it to each of them. When applied to each vertex/set of surrounding neighbours of a mesh, this smooths it.




Shear pulls a particle towards the plane normal to a given line (or to a given height above that plane). It could be useful for example if you wanted to restrict some of the vertices of a mesh to match a plane for glazing lines, or in self-organizing particle systems if you want them to form surfaces not just clusters.




(also requires WeaverBird)

This demo shows how several forces can be combined to optimize different properties of a mesh. Sliders control the relative strengths of the Laplacian smoothing and Planarization forces.

A shear component keeps the base vertices on the ground plane but allows them to move around on it (Using the shear component here is quicker than constraining to a mesh).

The colours display how planar each quad of the mesh is.

It can sometimes be effective to use high smoothing/low planarization values to begin with and get a nice smooth form, then lower the smoothing and raise the planarization for the fine adjustments to get it within manufacturing tolerances.





Equilateralization - This shows how equalization of mesh triangle edge lengths can be combined with smoothing to create a pseudo-physical material that reacts to manipulation of the anchor points

This shows how the Hinge force can be used to keep the angle between faces of a mesh at a particular angle.

This takes a flat mesh, and a choice of which lines will be valley folds, and which ones mountain folds, and folds it into 3d. (Inspired by Tomohiro Tachi's rigid origami simulator)

Shows how to use solids (Breps or Meshes) as collision volumes and drape a simple fabric over them


You can also download an earlier collection of example files here:

(some of these may need slight changes and updating - I'll be trying to go through these over the next few days and make sure they are all compatible with the latest version. Also - many of them also require the WeaverBird plugin)


There is also a collection of links to further example files and helpful discussions here:

update: here's another example for the vortex force: 

more example files to follow soon...


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

Comment by XU GUANG on July 29, 2015 at 9:57am

Hi guys, I am really new to kangaroo and grasshopper. I have checked the, and what I am doing is to apply another type of mesh and try to have a different result. But there exist some problems I cant figure out. As follow is my new mesh and the wrong shown from grasshopper. Could anyone help please !!

Comment by mohamadmahdi on February 20, 2015 at 1:23am

the zip file is corrupted i think so :/

Comment by Donnie Brasco on February 3, 2015 at 9:39pm

I made a short trailer for grasshopper+kangaroo w/T-spline.

Please visit !

Comment by Donnie Brasco on February 2, 2015 at 1:31pm

Hello, I am beginner of kangaroo and grasshopper. I would like to share what I am doing. I uploaded Youtube video of recreating some of those examples definition by my own way and hopefully that helps somebody just started Kangaroo also. Please let me know if this post is not appropriate or uncomfortable here, I will delete it immediately. 

main page

01 particle">
02 u-force">
03 plaw">
04 spring">
05 Align/spring
06 plow/particle
07 catenary curve
08 curvpull
09 tensil structure
10 tension cable, stick, membrane
11 bending
12 polyline bending
13 wind
14 meshcolide
15 sphire stacking
16 sphire stacking in the box</a>
17 sphire drop on membrane

Comment by Rémy on November 26, 2014 at 10:30am

Hi Daniel,

Is possible to have this example on this vidéo:


Comment by Will Pearson on October 10, 2014 at 6:19pm

Eddie, as the error message suggests, these examples were created with earlier versions of Grasshopper than the one that you have installed. Without opening Daniel's examples, in my experience this error is usually not fatal. What happens when you dismiss the error window?

Comment by Eddie Winn on October 9, 2014 at 6:26pm

Hey guys,

I get the same error message for all of them.




Comment by Daniel Piker on July 30, 2014 at 4:42am

shwok - you need the Weaverbird plugin to open that file. You can get it here:

Comment by shwok on July 30, 2014 at 4:14am

Thank you for your example files! I tried opening the file for Equilaterilization and I got the following error messages. Any idea how I can make it work?

Thank you!

Comment by Sumeet Kumar on July 20, 2014 at 6:49am

Thanks for the example files.

It was really a struggle in understanding Kangaroo.

But this s very resourceful. 


Comment by Daniel Piker on May 3, 2014 at 6:50am

Hi Duncan and Rebecca, I just updated the shell and plate example above. Andrea - I'll have a look for those old self organization definitions and see if they can be updated for the current version. Regarding origami simulation, the examples in the origami folder in the zip at the top of the page are the most up-to-date.

Comment by Duncan W on May 2, 2014 at 11:19am

I get the same problem as Rebecca Rusinow with the shell and plate example. Was hoping it would be updated after your announcement but the problem remains. Think you'd have time to look into this?

Comment by Andrea Rossi on April 7, 2014 at 3:48am

Hi Daniel,

I am searchign frot he old examples on self-organization of different shapes that you posted quite a long time ago (, but for some reason I could not find them, or I could not make the one I found to work with the new Kangaroo version.

It would be great if somebody could post something or point me to where I could get them.

Thank you.

Comment by Brian Sudduth on March 26, 2014 at 10:41am

Did anyone answer Sarah Jean Roberts's question about the  I am having the same issue and would love some help if possible.

Comment by Rebecca Rusinow on March 16, 2014 at 6:48pm


I'm trying to figure out a way to model objects using only equilateral triangles, with triangle edges touching (no gaps.)  Ideally I'd like to be able to manipulate the shape by moving vertices and having the entire surface adjust while maintaining equilateral triangles.  The closest solutions I've come across are the equilateralize and shell and plate examples for Kangaroo (images below), but I don't think the definition in the equilateralize demo will work because I don't always want 6 triangles around each vertex (I want a range from 4 to 7.)  The shell and plate example seems more promising, but when I open it in rhino/GH it says the C# component is old, and the code is missing.  Also, the shapes I'm trying to model are much less spherical than the mesh in the demo, so I'm not sure if that method will work anyway.  I'm also posting an image of some physical models that show what I'm going for.

Any advice would be much appreciated!



Comment by Danny Boyes on November 25, 2013 at 8:45am

There are two file formats for Grasshopper Binary (*.gh) and XML (*.ghx) They are both opened with grasshoppper in the same way

Comment by khaleefa Al hemli on November 25, 2013 at 8:36am

hello i am wondering how can I use ghx files ive never used the before can some one please guid me thanks all

Comment by Sarah Jean Roberts on November 11, 2012 at 9:35am

Hi Daniel,

Awesome work. I'm new to GH and I'm experimenting with some rigid origami. What do I need to "plug-in" to your ""?  I tried plugging in a mesh (link below), but I'm missing something(s)...

Thanks :)

PS. Is there an easier way to attach files here than using a file host? :P

Comment by Adam Murray on August 28, 2012 at 6:15am

Oh sorry, I know that does sound odd. It just that I just downloaded kangaroo and replaced 3 components from your script with new components fresh from kangaroo. I guess my real thought was perhaps that the script you had was some how older or something. No offense intended.

I will try that shear solution. On another note I've been reading some of those autodesk research abstracts from 2009 and 2010 that you reference in the kangaroo handbook, great stuff. Are there any current abstracts or developments with kangaroo integration. I mostly curious about articles or perhaps other adoptions of the program and or applied examples/research. Thanks.

Comment by Daniel Piker on August 28, 2012 at 3:30am

Hi Adam - it's strange that you think I would have an older version of kangaroo than you ?? :)

For cloth shear - the usual way is to simply add both diagonals to your quads as additional springs.


Search Grasshopper


  • Add Photos
  • View All

© 2016   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service