algorithmic modeling for Rhino

Hello I am trying to bend a grid of curves into shape as a representation of the process by which gridshells are constructed on site. A flat grid raised into position - each lathe/curve maintains its length but bends into position as the plan shape changes through self weight.


I have made my basic definition and have some spring forces working on the curves but am looking for a way to make the curves bend upwards in the z axis, and maintaining the length of the curve.


Is this possible with kangaroo? I dont quite understand the way in which the bend component in kangaroo works so if you can help or suggest where i am going wrong i that'd be great! 




Views: 16496


Replies to This Discussion

As I've realized sorting out the points for the Bend component is a bit of a pain, I made this little script to do it automatically.

It should work with any open or closed polyline, and outputs the right point lists for the bending force, along with the line segments which can be used to make springs or display the geometry, and the angle (if you want to make the rod try and keep its original shape instead of straightening out).

I will integrate this into the next release, but hopefully this helps in the meantime.


Additional images to help understand problem


Hi Chris,


I've tried something based on this definition by Daniel Piker. it seems to work, maybe it helps ?  You need to make sure the anchor points are on the initial curves and the intersection points should also be part of the division points.


Not sure how to add length to a curve, right now you need to move the points around...?

Sorry Daniel, just noticed you answered before me :)




Fantastic thank you Daniel.

It looks to be very helpful. I'll try and apply it within my definition and post my solution if i manage.



Chris I

Here's a quick go at what (I think) you are after.

The slider needs to be set to zero when you reset the simulation, then as you adjust it it will pull the endpoints of the lathes inwards. The springs keep them the same length.

There needs to be some out of plane force to cause them to buckle, so I added a very small vertical pull.



Thankyou. Exactly what i was trying to achieve. Many thanks indeed. Kangaroo is a really fantastic tool! 


Continuing to look into this experiment, the definition works for a set of parallel curves however when attempting to deform a grid (curves in two or more axes) it becomes clear that the way the model is set up it wont allow this. I am sure there is a way to do this with the scale component and by extracting the end points of the scaled curves or scale the end points and reference the original curve lengths...

This seems to be very complicated for me so i am not really sure how to sort it out!

Can anyone help?







Make sure the intersection points share the same coordinates as the division points like shown in the definition attached. You need to flip the data matrix to connect the points with polylines in the other direction.


Hope that helps,






Thanks Arthur, very helpful i wasnt aware of flip matrix. 

I tried a simple rotation around axis and then plugging the rotated geometry in as the first example. Although i think i may have missed the polyline when i tried this so i'll try the other method again. As the flip matrix is currently flipping the division, equally dividing the curves as oppose to an equal length intersection as defined in the first parts of the definition with the rectangular reference box.

I will work up and repost.

Many thanks again.


A continuation of this experiment demonstrating the capability of deforming a grid into its raised position. 

Cool !! It would be great to compare the digital model with a physical one :)

Also, is it possible to connect it to another grid on top of it? Exciting !

Hello Chris and everyone in this discussion 

I just saw the grid shell bending on vimeo. It's great!

my project is about kind of "breathing" structure that bends in same way

at the moment I have a working pattern that I would like to bend just like this grid

I saw the PARAMETRIC LATTICE definition and tried to connect my pattern to it but since there is a script in it I don't really know how to do it 

Is the irregular grid definition different?

or you know how to join it?

I would appreciate any help from you guys







  • Add Photos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service