Unfolding Surface Strips


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.

7 Responses to “Unfolding Surface Strips”

  1. 1 nico

    Hi Andrew,

    Thanks for putting this out there. It is definitely a great contribution to the development of functional unroll tools for GH.

    I just tried it out, but unfortunately it doesn’t seem to maintain the coherence of the strips in the “unroll strips flat” group. That is the linked strips of the surface at the beginning of that group break into the component faces by the end of that group. Tried to troublshoot it, but I must admit I don’t have a good enough understanding of the compound transform to get my head around what is happening.

    I’m running .8.0010 and not having any error’s thrown. Any ideas?


    • 2 heumanndesigntech

      Hi Nico –

      Thanks for pointing this out! This is an issue I was not aware of. It’s either a bug in the current version or a bug in the version in which I originally created it; in any case, in the current version the order of compound transforms has been reversed. In order to fix this you need to slip a “reverse list” component between “match path” and the compound transform. A second thing that may have been an issue is at the very end of that section – flatten the input to the BRep Join component.

      Let me know if that doesn’t fix it, and thanks again for catching the problem!!


    • 3 heumanndesigntech

      I have also reuploaded both definitions with the changes I mentioned, so you can try just redownloading the files.

  2. 4 Victor

    Hi Andrew,

    Nice to see your development on the compound transform. I studied your script which is really smart to use the newly available compound transform. I tested out a similar process using VB script, which is pretty fruitful.

    I’m working on a similar idea as your triangulated surface unfold. Which you gave me your unfolding script sometime ago on GH3D.com . I adapted your unfolding technique to my logic and I must thank you for that. You can take a look at the project here:


  3. 5 Selen Ercan

    Hi Andrew,

    I was trying out your unfolding definition but somehow the resulting unfolded surface – the small pieces of the polygonal triangulated surface – are not planar.

    Do you have an idea how to fix this?


  1. 1 Unroll, Cells, Mesh Polylines, Reparametrise components « the leda atomicus
  2. 2 TUTORIALES | Pearltrees

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: