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)
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.
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.
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.
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 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”.
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.
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…
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!
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…
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.
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?
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.