Curved Crease Folding | Angle Defect

Hi Daniel,

Hope you are well.
I am trying to explore the curved crease folding using Kangaroo. The method I am doing here is transforming from 2d to 3d by defining the ruling lines using the Hinge force. There are two conditions that need to be achieved which are the planarity (keep all the mesh faces planar) and the angle defect (The angle around the internal vertices to sum to 360) to be unrolled successfully. I succeeded to achieve the planarity condition however I tried so hard to achieve the angle summation but with no luck. I tried the developabilize force and angle clamp force but could not make it work.

Please check the uploaded definition & screenshot. Hope you can help.
Thanks alot.

OmarCurve Folding_Kangaroo_From 2d to (43.5 KB)

Hi Omar,

I didn’t check the whole definition, but I had a quick look and see a few issues-

You are not doing anything to preserve the lengths of the quad diagonals.
If you start from a flat triangulated mesh, and fold it in any way while keeping all the edge lengths the same, then the vertex angle defects will also stay the same (zero).
This is not the case for quad meshes - since even while staying planar they can change shape without the edge lengths changing. So you need to include the diagonals.

Secondly, I see you are anchoring the top faces to one plane, and pulling the outer boundary curves to a lower plane and to drive the folding.
This conflicts with preserving the edge lengths, since when this shape folds, the top faces cannot lie on a common plane.

Hi Daniel,

Thank you very much for your valuable hints.
it works so far with the triangulated mesh.
as you mentioned, I preserved the mesh edges length and also used the angle clamp as additional force to maintain 2pi angle around the internal vertices.

I will try to achieve the same on the quad mesh and post it.
Thanks alot!


1 Like

Hi Daniel,

Here is an update on the curved crease folding applied to the quad mesh. it works so far however I think (might be wrong) it takes a bit long time to preserve the angle since I am using an angle clamp which only works between two consequent lines and does not have a tolerance to preserve the summation of the overall angle to 360. I wish there is a goal that preserving the overall angle as a sum. I noted that you touched on this topic previously in this post but could not find it in the latest kangarro version. it will be great to consider adding this goal.

Thanks a lot !

I follow :).
Me and many other people into the “applied origami” field are still hoping for that node to be official so hard.
Btw there are walkarounds to do the same thing without using angles, usually you guess a developed state of the 3D shape on plane and send back to the 3D folded state the lenghts of the lines, it´s more stable compared to using angle summation constrains, but in some other cases the angle summation constrain would be helpfull anyway to stabilize the optimization even more or to solve problems where is very hard to guess a nice flat state.


Hi Riccardo,

Yes Indeed. Preserving the edges length worked well in case of the triangular mesh however I found that it is necessary to preserve the angle defect to zero by having an angle constraint in order to keep the geometry foldable and unrolled successfully.
Also sometimes balancing the forces will be very challenging. This is the reason where I think the angle summation goal will be useful since it will provide some tolerance to the internal angles but still can be preserved overall.

To all those interested in this field I highly suggest you check out Michael Rabinovich’s work. It appears to be the holy grail. Modeling Curved Folding with Freeform Deformations - YouTube Here is his PhD Thesis that goes along with it. I haven’t read it yet and I’m new to rhino but perhaps we could implement a similar method. Dropbox - Thesis_Final.pdf - Simplify your life

1 Like

Hi @kendrick90
I’m aware of the great work on discrete geodesic nets from Michael, and I did make a simple implementation of the angle condition he describes with Kangaroo-

(the definition is here)
Extending this to include more of the ideas shown in the later papers from the IGL such as the inclusion of curved creases is something I’ve been meaning to try for a while.
The basic idea seems quite clear - extending both side to full quads and linking the vertices, while still keeping the DOG condition from the first paper

1 Like