Modelling Folded Structure using Grasshopper


I’m a research student and am trying to use Rhino-Grasshopper to model folded structures as per the shown picture below. However, I’m in the way of figuring out how to parameterize the break point position and also the angle of folding for the surface plane. Noted that research has been done to model free-form structure by using Grasshopper script. Therefore, is there anyone have experience in modelling this kind of structure could give advice on how to parameterize the degree of folding and twisting angle for the surface plane.

Thank you.

Best Regards

Check this file by @DanielPiker

Not exactly like your image but you can get there I think… (33.1 KB)

On developable surfaces, like formed by paper, there is a straight ‘ruling line’ through any point of the surface. Finding the directions of these ruling lines across the surface is often the hardest part of modelling developables. For general shapes there are various strategies possible, such as making a dense triangulation and simulating the bending with hinges.

However this shape looks like it has a single cone point, with all the ruling lines radiating out from this. For this special case I think we can simplify things considerably.
You can draw a smooth closed curve and extrude it to a point, then intersect it with a sphere centred at that point.
Another requirement we know for the surface to be developable is that the angles around any point must sum to 360°. This means the intersection curve of the sphere and the extruded surface must be the same length as the intersection of the sphere with a plane through the centre point - i.e. a circle of the same radius. If we make small adjustments of the curve until it meets this requirement, we get a shape which can be unrolled back to a flat surface without stretching or cutting. (18.8 KB)


Yet another possible way is using a mesh triangulated along the ruling lines and preserving edge lengths while using bending to keep the boundary smooth: (20.7 KB)


Hi, @DanielPiker. Thanks for your sharing. :blush:

You’re right. This shape has a single cone point, called as break point, where ruling lines radiating out from this. I have tried to model it as follow your given script, however I was still not sure on how to draw the smooth closed curve to get a same length as the intersection of the sphere with a plane through the center point.

Could you further show on how to get the curve? And do you use any grasshopper external plugin while doing this script?

Thank you. :slight_smile:

Best Regards

Thanks @martinsiegrist for your sharing. :slightly_smiling_face:

1 Like

Hi @tongteongyen

The ‘’ file in my first reply above doesn’t need any plugin or solver - you just need to manually adjust the curve so the a/b output is 1.
So move the control points around until you have something like the shape you want and the value is somewhere not too far from 1, then move the curve a little in one direction to bring it closer, zoom in and adjust a little more, and so on until reaching your desired level of accuracy.
It’s manual but only takes a minute, since it can be solved by moving along a single axis.

Alternatively you could hook this numerical adjustment up to Galapagos or another solver like Goat, or you could use the Kangaroo approach in the second reply to maintain the constraint interactively.


Dear @DanielPiker,

Thanks a lot for your insightful reply. I was known how to extrude the surface to made the shape possible. However, I’m still figuring out the part in your first script that entail rotation of rectangle, surface split and copy trim. I also notice that the list item is reversed for the input. Could you explain how is this approach?

Another issue I wish to seek your advice is would it be possible if we wish to keep the angle as a constant value, say 30 degrees as shown in the followed picture?


Hi @DanielPiker,

Wish to check with you for Kangaroo approach, instead of using “grab” command to allow us to drag the point in Rhino canvas, would it be possible to use the grasshopper script to move the point as we want like in the Rhino canvas to see the effect? I have tried to put the “move” command and put into the Goal Objects in Kangaroo Solver, but seem doesn’t work.

For the 1st approach (without using Kangaroo), currently I still in the midst of trying to adjust the fold pattern by using Grasshopper script. I have tried method of using graph mapper and pull point. However, I can’t get the mountain fold shape. Wish to check with you would it be possible to have the mountain fold shape. Attach also my script in case you wish to have a look. image

1. Model 1 Part 1 (33.3 KB)

(P.S. I’m new to Rhino and Grasshopper, so still exploring it). Hope to hear from you.

Thank you. :slightly_smiling_face:

Best Regards