Geometric problem - rationalising numbering of icosahedron vertices

Hi, First post here and first proper GH project so excuse my ignorance please.

I’m trying to create a sculptural artwork put together with folded and overlapping pieces of aluminium.

I’m at the point of trying to create the individual breps to unroll for fabricaton by combining six different surfaces together per brep. Each brep needs to lock onto an adjacent brep.

The only problem is that the numbering of the vertices of the icosahedron in weaverbird is almost regular but not quite. The fact that it isn’t quite regular is causing me quite a bit of grief as I don’t know how to renumber the vertices in a regular fashion spiraling around the poles. If I can even do that hopefully I can then set up a definition to ensure every brep will overlap with an adjacent brep without any doubling up so that when it is fabricated it can be rivetted together.

So the main question is, how do I connect all surfaces to just one adjacent surface (subdivisions of a icosahedron) and make sure I’m not doubling up or missing any? ideally the solution won’t be too heavy to run either.

I suppose a solution involves starting at say point A, finding the nearest point to that (call it B) and then removing point A from the list of point to search for the closest point to point B, and then repeating until all 100 or so points are calculated. Not sure how to do that. Hoopsnake?

Architectural model (148.3 KB)
Architectural model 1.3dm (476.7 KB)

Here is my definitions work in progress screenshot for reference and the essence of the problem in the numbering of the icosahedron.

Thanks for any help! Much appreciated!

If the icosohedron is a mesh could you use one of the mesh topologiser components to give you a list of adjacent faces for each face for example?

just to understand. You want a triangle with lateral sides that will be folded and assembled together by rivet. Something like that ?

If it is that, your sides need to have a number done by the association of 2 vertex number or an edge number.
Sandbox provide topology for that. But it is also easy to use a C#/VB component for that.

Instead of extruding triangles it could be better to extrude the edge, or far better to offset the mesh of your sclupture and to link the faces …
Ivy could also be useful for what you want to do.
But you will have to take into account the thickness of the plates, the radius of curvature of bending …

1 Like

I have done that

Here an explosion of the differents breps
I used your 2 brep but it is not the good way to make the inner part. It would be better to offset the mesh. Update not true … So flaps will be flat.
Architectural model 1. (23.5 KB)
The GH must be run on Rhino 6 because of the new component of Grasshopper.

I want to continue to work on this but I think it is important to know how you will make it, material thickeness vs size, curvature radius. How you want to place rivet …

1 Like

Thanks Laurent and Martyn,

I think that the 3d proximity component might provide a key so thanks for that suggestion Martyn.

Laurent, thanks so much for being so willing to jump in and help with this! That’s great the idea of putting a radial cut in the corner of each triangle. I am still thinking I want to put an inset triangle shaped hole (with the corners of that tringle hole rounded) into each triangluar shaped panel. But that’s down the track and I think I know how to do that bit.

Here is a picture of how I want to construct each piece of aluminium so that they can be rivetted together.

The rivets would go through the little rounded panels numbered 5 and 6. I will also need to put holes into the panels 3 and 4 to align with the overlapping 5 and 6 panels from the adjacent folded piece of aluminium. I’m not sure how think the aluminium should be really as i’ve never built something like this but I think 0.5mm should be enough as I’m imagining the entire diameter of the ball sculpture to be about 50cm or so.

The only issue with what you have suggested is that it doesn’t allow me to connect the internal and external surfaces. I could glue them together if they were joined together but I like the look of the rivets and think it will look better and mean less doubling up of material where the different flanges come together.

Also it’s worth mentioning that the panels numbered 1 and 2 in my little diagrams would actually be turned into two triangles with one hole in the middle of each but I didn’t include this for clarity’s sake.

Hope this makes sense.

Thanks again,


Managed to do it! I ended realising it’s not that complex a concept though the execution was quite involved for a noobie like me. Basically it’s just about organising the data first by z coordinate and then by polar rotation. :slight_smile: Now to turn it into a sculpture…