Reverse unroll (how to make a 3d object from a flat pattern)


I’m looking for a solution to fold an existing flat triangular pattern into a 3D object. I would say I start like this:

  1. Fixate one surface of the flat pattern
  2. Hand pick two corresponding “hinge” edges until everything is completed

Can anyone give me a starting clue for finding this solution?

(In the Rhino file the original 3d object is visible but in reality I only have the flat pattern)

Reverse unroll.3dm (2.8 MB)

Oooh, that’s an interesting problem. Is it always as “simple” as the image you show?

That is, do all the forms always have:

  1. A planar bottom face
  2. A single point at the top
  3. All the side edges go between the point and the flat face

If so, there might be a tractable way to fold them back up. But if it gets more general than this, you might need to use something like Kangaroo in Grasshopper to associate edges with each other and then have it solve the physical system. In fact that might be the best approach, anyway.

Here’s a first attempt at a GhPlayer command for this that lets you drag the points around in 3d so they snap together: (10.9 KB)


Or for a more conventional approach - drop a perpendicular from the tips of the triangles to the fold lines, make circles around the curves, find their intersection and rotate the pieces so they meet there:

(and so on until it closes up)


Hi Brian,

Thx! It’s not always that simple so I have to use Kangaroo to solve this problem. The only thing I can’t figure out is how I can “pair” the edges by clicking them step by step in a Rhino viewport. I’ll upload the files when I figured it out!

Hi Daniel,

That’s a nice command! But in my case, if I use a more complex fold pattern, it gets messy. Is there a way to grab geometry by clicking the edge in a rhino viewport. My approach for a Ghplayer would be the following:

  1. Pattern of foldable surfaces as a Brep.
  2. The common edges of the pattern acts like hinges.
  3. Fixate one surface
  4. Click two edges to make a hinge
  5. The result is used as the new Brep
  6. Repeating step 4 & 5 until everything is solved.

Thx for the help!

Hi Jef,

I agree picking edges to fold sequentially would be nice. I think that would be possible though a bit of work to set up.
Another option that I think might be simpler to make would be something that let you select a Brep or mesh and a bunch of lines connecting the vertices which are to become coincident when the shape is folded, then it would tighten them like strings pulling it into the 3d shape.
Do you have an example of one of the more complex fold patterns you can share to demonstrate on?