Folding Form, driven by a single angle. Origami

I’m attempting to recreate a folded form in dynamo. Images of the form below and start of my dynamo file. Apologies if it is messy, this is my first attempt at using dynamo.

Image 1 shows what I’m trying to recreate. I can upload a video of it being folded soon if this will make it easier to understand!

So far I’ve managed to make a dynamo file that gives the co-ordinates of points d,e,f (Shown in images 2,3 and 4).

However finding the co-ordinates of the other points is proving tricky. Even with knowing z co-ordinates of the other points. (a,c,g,i=Z), where Z=what the dynamo file calculates. And b,h=0. Im struggling on how to continue…Am I going about this in a different way to how you would tackle it?

Image 4 shows the form folded flat. The length d-h is known from the grid spacing. (In this example I have used a spacing of 10 units, giving the radius as Sqrt(50).

This is my first post and project so thank you for your patience.

Regards, Jack

Folding Form.dyn (11.9 KB)

Hello, reading this could maybe help:

This other way is to play with lists of points, I guess. You could need to select items by even and uneven indice, like so:

Could you also send a screenhot of your graph?
Thanks :slight_smile:

Hello and first of all thankyou for your help. My Internet has been off today, so I am writing to you from my phone now.

I can take a screen shot when I’m back online (which should be tomorrow)

Until then, I did include the dynamo file if you want to view it that way.



@Mostafa_El_Ayoubi ? :slight_smile:

Hi @JAC ,

my first thought when I see your problem is that adaptive components would probably be a good approach. Have you tried them? Or do you absolutely want to do it with dynamo ?

One nice way of doing it would be to define a function that creates a module from 4 points (a,c,i and g) like this :

The function needs some work to have the correct geometry but this is the general idea…


I did it in a basic way with some patience: from 9 points, with Line.ByStartPointEndPoint, PolyCurve.ByJoinedCurves, Surface.ByPatch and PolySurface.ByJoinedSurfaces in the end that just need to be repeated.


Hello Mostafa and Yna,
First and foremost thank you very much for your help. This looks to be a fantastic solution.

Second of all, sorry for not replying until now, I have been all over the place and this project managed to get away from me.

Thank you again once more and have a good day,


1 Like