Rebuilding Origami Shapes

Hi Everyone,

I am trying to reconstruct an origami shape in Grasshopper/Rhino.

I have all the shapes drawn. My grasshopper logic is :

Identify the shapes and where they will need to be folded.
Select a single shape to start with and keep adding polygons to this.
Rotate each shape accordingly.

How do I identify a matching edge and then align to the main shape?

Please see attached for further clarification.
File Removed

Example:
I want this shape to move and attach itself here. (The line length only match to the nearest 0.00)


Thank you!

Note:
This is a personal project. I am trying to create something like this as an end result.
image

1 Like

Hi @hamzafarooq03,

I’m not sure I follow - did you start from a 3d mesh then split and unfold it? (in another software? Pepakura?)
Surely you still have the original 3d file somewhere?
Reconstructing the 3d from all these flattened pieces without the fold angles and edge matching in the file would be tricky if not impossible.

If you had the indexing info of which edge matches with which in the file, then you could maybe pull the points together while preserving the edge lengths, but I think maybe that still isn’t enough to uniquely determine the shape.

1 Like

Hi @DanielPiker

Unfortunately, I do not have the original shape. These shapes are taken from a (vector) PDF DIY home kit, which is normally printed on A4 and constructed by hand. I am trying to construct this in rhino or grasshopper. Any advice or direction would be much appreciated.

Many Thanks

Ah, I understand now, I thought before that you had created the original model.
As I say, digitally assembling it from flat parts without defined matching and fold angles in the file would be very tricky.

I think you’d be better off finding a 3d mesh and working from that.
I remember there’s a nice elephant model I’ve used for some demos before here:
http://graphics.im.ntu.edu.tw/~robin/courses/cg03/model/

Taking that and applying Rhino’s ReduceMesh with a 2000 face target gives this:

It would need some manual cleanup (there are separate pieces/holes around the eyes/tusks/mouth, and the ears are very thin in the original model, so tend to collapse when reduced, but nothing a bit of pulling vertices around couldn’t fix.

I did one of these once as a skull mask. Did the source you got it from not have instructions?

Hi @TheCyclist,

It did come with instructions, I have attached a low-Res A3 “Key” showing how the shapes connect.

I am happy to share a more detailed one if it may help with the process?

Hi @DanielPiker,

Thank you for sharing this. I will keep this as a backup plan.

Really appreciate your help!

Many Thanks.

I was trying to make up something, but first mesh cleaning was needed and then i came to meet a problem:

no, there are many edge lengths that are shared between 3 or 4 edges, so automatic sorting is not possible.

If you have a vector version of that pdf file, automatic sorting using the number tags can be done… and then some attempt with kangaroo…
I’m not saying it will work, i’m curious to see how much it will “crumple”. :rofl:

Hi @maje90

Here is the PDF. I extracted the data by importing into illustrator and extracting the lines (into DWG format, then imported directly into Rhino).

File Removed
[For Personal Use]

I have tried to manually make this inside rhino but when you try to fold the shapes it becomes difficult; because when you have multiple triangles and you try to angle them all to connect. For example below:

If I was connecting these two edges then all the other (yellow) edges will have to fold the perfect angle for them to meet.

Hopefully, it won’t crumple hahaha :sweat_smile:

Thanks Again!


It’s sort of working, many small manual steps, i’m trying to grab in position the vertexes…
I see 3 “things” … and 2 “flaps” … tusk+trunk+ears ??
I’ll update shortly…

2 Likes

Oh wow! That’s impressive!

I’ve just realised, besides the trunk, I think from the images it appears to be symmetrical! This would mean identical vertexes. It might have to be a semi-manual process. You’ll have to explain how you have achieved this! :smiley:

This looks fine. Maybe just inflate it using Kangaroo and your work here is done!


Manually un-crumpled with Grab goal… not perfect result but pretty decent.


To SubD with creases.
Elephant_Head_re.gh (80.2 KB)
Elephant_Head_re.3dm (1.5 MB)

Original model have an opening behind the head, also, the ears are really thin with one side convex and the other concave, so inflating could help but maybe at really weak force/pressure… haven’t tried…

Note that it came out mirrored, or better, flipped inside-out. It was a 50/50 chance… :upside_down_face:

Behind the scenes:
2020-11-19 23_59_19-Window

7 Likes

I’m impressed - I thought assembling it from flat would be near impossible.
Please exercise caution when inflating elephants :slight_smile:

6 Likes

I’m speechless, I don’t know how you have resolved it this quick!

I will send a little gift on DeviantArt tomorrow or the weekend! For a pint on me! :beer:

I will go through the script in more detail and might follow up with questions.

Absolute Legend!

1 Like

It almost was, if left running alone.
Given the absence of Z values, initially it packed in a 2D nonsense, then after the first cursor grab it started to move, but still it was mostly a manual work…
Only 4 goal components, but i think this couldn’t ever possibly be made without kangaroo.

1 Like

Perhaps the next step is to implement LunchboxML and teach it with a load of elephant photos then let the AI do its thing until you have a symmetrical elephant?

1 Like

I have downloaded both files and started the solver. The result remained flat for me.
How can extend it to 3d ? If manul work is needed can you please explain how to do that?

@Balazs - what Riccardo did above is create the flat mesh with the right connectivity then interactively move the points using grab to drag them in 3d in Rhino.

This sort of reconstruction from multiple 2d parts without connection info to 3d of a complex open triangulated mesh without having the 3d form first is a very difficult puzzle, since there are huge numbers of local minima for it to get trapped in.
It’s not like a classical rigid origami pattern where there’s a single degree of freedom for the folding - there
are many different ways each of the pieces can move at each step.

Doing it by hand with real physical paper, you’d be holding the parts in multiple places and using your knowledge of the form you’re aiming for to decide which way to fold them, but there’s no simple way to convert that intuitive approach into an energy minimisation that would form it automatically.

For some simple closed mostly convex meshes it might be possible to use inflation, but that certainly wouldn’t always work, as most closed triangulated meshes can have multiple configurations in space that preserve the edge lengths.

That’s why I was so impressed that @maje90 was able to do it by dragging individual points - it must have taken a lot of skillful and patient manipulation.

The original post is a strange sort of reverse engineering challenge though and not one which I imagine should come up often, since I would expect normally for something like this you would have access to the 3d model, which completely changes things.

1 Like

Daniel, thanks for the detailed answer. Is there a chance an you share the file which does the inflattion with Riccardo’s file?