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: 13043


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

Join Grasshopper

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).

Comment by tiqué on June 17, 2012 at 11:19pm

Andrew can you please also tell how to put name tags and angle tags on the same unfold pattern.

Comment by Derenik Baghramian on February 3, 2012 at 12:08pm

I have some surface like this.i want to unfold it ho i can do it?




© 2018   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service