algorithmic modeling for Rhino

2013 update: this is probably a better way to go.


Cross posted here.




Lately, in some of my work I have been investigating unfolding complex forms with Grasshopper. The newest release of Grasshopper enables the use of Compound Transformations, which makes it possible to quite efficiently unfold strips of planar surfaces. In the past I have had to use pepakura or other similar utilities to perform the unfolding outside of Rhino, or alternately a slow faux-recursive method where I essentially unfold one segment of the polysurface at a time.  
Below are a few definitions making use of this new capability.

The first, here (unfold_surface_strips.ghx), simply takes a list of surfaces that adjoin each other at an edge and unfolds them flat.

The second (triangulated_surface_strip_tool.ghx) utilizes the same processes in the first to unfold a triangulated version of an input surface. Strips can be evaluated in the U or V direction.

Finally, with the right settings on the same definition (setting V divisions to 1 and U divisions to some high number) it can be used to substitute for the UnrollSrf command in Rhino with a high degree of accuracy. This is an improvement in efficiency and accuracy over my earlier Unroll definition.

Views: 13778


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

Join Grasshopper

Comment by Lee Yi Chin on August 21, 2018 at 1:46pm

hello Andrew,

I tried with the script you shared, and I have some problem with that function. How the "curve" and "points" inputs work in this function? I supposed that is the curves or points we want to cut through when unrolling the surface. However, It didn't change anything while I inputed the curve to the function.
Can you explain more about the the unrollBrep script?

Thank you so much!


Comment by Merve Akdoğan on August 9, 2018 at 6:13am

undefinedHi Andrew,

Thank you for your post, but unfortunately I could not unfold my triangulate surfaces with your code and actually ı do not know what the problem is. I have very limited time for production process of my design. I hope you can help me. I am attaching Rhino file of my triangulated surface and a screenshot of it.

Thank you in advance,


Comment by Michiel Spaapen on September 10, 2015 at 8:34am

Hi Andrew,

I am trying to unroll rectangular strips. Your unfold surface strips script however doesn't flatten my strip and the unroll brep script overlays some surfaces. Do you have any idea why this is?

Comment by Nathan Melenbrink on January 7, 2015 at 9:08pm

Hi Andrew,

Thanks for the quick reply. Yes, I've seen the Rhinocommon wiki on the unroll function. It's a good start but lacks the functionality I'm looking for. TT Toolbox is great but also doesn't offer any more functionality in terms of unrolling. But thank you for the suggestion. I'll give it a shot on my own and post back here when I get something...

Comment by Andrew Heumann on January 7, 2015 at 8:42pm

Hi Nathan -

Glad these definitions have proven useful - but it's been a long time since the developers exposed rhino's native "unroll" functionality into rhinocommon, so many plug-ins and scripts exist to do the same thing as this. You can try this simple script: and I also hear good things about the unfold script in TT Toolbox. 

Comment by Nathan Melenbrink on January 7, 2015 at 8:37pm

Hi Andrew and All,

Unrolling for fabrication has been a recurring issue for me in both my teaching and professional work. I'm posting here because Andrew's definitions are the best I've found yet (other than using Pepakura). First, does anyone know of any reliable add-on or custom component that does this within GH? I tried FabTools and some others than claim to do this, but without much success. 

If it seems that indeed there isn't a suitable alternative to Pepakura, I'm comfortable enough with C# to give it a shot with a custom component. I would hope to include the functionality of Andrew's definition, and could replicate more Pepakura features such as tabs for gluing, and ridge/valley fold lines separated by layer. Of course I don't have access to Pepakura's source code, but I assume they're using some kind of greedy algorithm to split the mesh into as few contiguous parts as possible, which would also be helpful. A tool like that would be really helpful for me, and I assume others might find it useful as well. What do you think? 

Comment by Carina Carmo on October 8, 2014 at 9:27am

Hi Andrew,

It really seems brilliant! But unfortunately It is not working.

The script that i downloaded was the last one (November 27, 2013)

There are 3 errors:

1. Before solution exception: access denied

2. solution exception: access denied

3. After solution exception:access denied

I hope you can help,

many thanks,


Comment by Arthur Mamou-Mani on November 27, 2013 at 12:09pm

That's brilliant Andrew! thanks so much.

Comment by Andrew Heumann on November 27, 2013 at 11:33am

Hi arthur - this post is very old. Much better ways to do things now - see this script

Comment by Arthur Mamou-Mani on November 25, 2013 at 5:54pm

Thanks a lot Andrew. Have you tried doing the unfold_surface_strips.ghx using several strips as input? I am struggling to find where to adjust the definition to make it branched-list friendly (file here).





  • Add Photos
  • View All

© 2018   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service