Perforated Geodesic Sphere

Hi guys,

I’m relatively new to GH so I’ll try to describe my problem as accurately as I can.

I would like to replicate a series of spheres with a varying number of perforations originating from points which I projected from Weaverbird’s Icosahedron’s vertexes. The perforations are obtained by a series of cylinders which are extruded along a vector intersecting the center of the sphere and each individual projected vertex.

As you can see from the image I have no problem with 1 or 2 subdivisions, but when I increase the icosahedron face subdivision to 3, the vectors won’t converge towards the center of the sphere.

Do you guys have any idea what I am missing?

Also, any suggestion on how to streamline my definition is really appreciated! Ideally I would like to change the diameter, the thickness and the number of perforations with the minimum steps as possible.

Thanks in advance,
Tommaso (17.0 KB)

hey @TomX_X,

Maybe this? made it less exact (lazy) - re-scale at the end?

Also I wouldn’t rely on ‘project points’ command - brep closest point will work here. (34.4 KB)

To “streamline” more go back to solid difference - switched to * trimming as booleans tend to be slower.


@corellaman Thanks for the prompt reply. I forgot to mention that I’m working with Rhino 5 for Mac. When I open your file I view the following message:

Here is a shot of the definition you suggested as viewed from my screen:

Could you please attach a shot of the whole definition so I can try to replicate it from my workstation?

Also, why are you suggesting to make the definition ‘lazy’?

Thanks for the support,

Going back to your initial problem, I believe that is being caused by the fact that once you go beyond an icosahedron in subdivisions, the triangles are no longer equilateral and therefore, not all of their normals will pass through the center point of the geometry.

I would have been happy to downsave but I no longer have R5!

sorry if that’s misleading! What I meant by ‘lazy’ or ‘less exact’ is that I got rid of spheres you were creating with precise radii, and focused on getting what you needed as goal, then you can just scale the thickened object with holes at the end.

1 Like

@TheCyclist Thanks for the feedback. The subdivisions are obtained by dividing each of the icosahedron’s faces into equilateral triangles.

I think that the problem is caused by some of the normals being perpendicular to the faces of the icosahedron rather than converging towards the center.

@René_Corella I replicated you definition and it’s working correctly, so thanks for that!

I do however need spheres with precise radii & thickness, as well as holes with an adjustable diameter. All of these factors need to be adjusted independently and precisely because they will interface with other components.

I’ll try to merge you solution with these requirements. Of course any further suggestion will be well received :wink:

Thanks for now,

1 Like

sure! :slight_smile: forget my example and simply adapt the brep closest point method to what you had


@René_Corella I’ve adapted your definition to mine, but I’m experiencing some problems with the algorithm… With 1 and 2 subdivisions (wb triangles node) the sphere bakes but with plenty of naked edges, with 3 and 4 subdivisions the loft node fails, with 5 the sphere bakes but with naked edges at the poles, with 6 the loft node fails and so on…

Any idea how to solve this issue?
Thanks for the support!

Perforated (12.5 KB)

@TomX_X change your loft settings to tight + rebuilt with a ton of points so rhino is happy

1 Like

You might be able to get better results by downloading the Rhinopolyhedra plug-in. Weaverbird gives you an icosahedron and the ability to subdivide. Rhinopolyhedra gives you a huge variety of geodesic spheres, some with triangular faces, some with quad faces, and some with combinations of hex and pentagonal faces. The normals on those geodesic sphere faces will either point straight at the center of the sphere or much closer to it than a subdivided icosahedron’s normals. But if they’re still not perfect, just using the volume centroid of the sphere as the start of a line and the centers of the faces as the other end will probably get you much better results than you’re getting with the icosahedron.

Here are geodesic icosahedra patterns for 60, 80 and 140 faces:

The plug-in offers options up to 1580 faces for icosahedra. Geodesic cubes start at 12 faces and go up to 384. There are two other geodesic sphere types, too. Many many possibilities. The grasshopper version of the plug-in may allow you, with some work to create a way to create a list of geodesic polyhedra sorted by number of faces.

None of these are perfect divisions of a sphere, only the platonic solids do it perfectly, but the geodesic spheres are close compromises, one of them is the source of the most famous golf ball dimple pattern, for instance. If you want an increasing number of holes, spread out as evenly as possible, your lowest numbers of holes should be derived mostly from the platonic solids, possibly adding tapezohedra or another partly symmetrical polyhedron for 10, 14, 16 and 18 faces.

Here. I made a definition using Rhinopolyhedra. Only plug-in you need to download for this is Rhinopolyhedra. Once installed it lives in the native Mesh category.

Holey (46.1 KB)

My version makes holes that are conic, not cylindrical, but it should be pretty easy to change to cylinders if you need that. I’m also having some issues with holes failing on the sphere’s seam sometimes.

But if you just want a wide variety of hole patterns, you can swap the Rhinopolyhedra part of my definition into your definition, maybe?


See also this thread:

1 Like

That goes way more in depth on this, thanks!

I find these arrangements particularly interesting:

It looks very regular at first, and the only irregular vertices are the 12 valence 5 ones, but unlike a simply subdivided icosahedron, there is a twist - if you follow a line of edges out from one irregular vertex it doesn’t connect to the next irregular vertex:

With the simple subdivided icosahedron, the number of dimples makes big jumps with each level of subdivision - 60,120,200,300,420…
Whereas with the twisted version you can get more intermediate dimple counts. The one above has 312

Twisted = chiral?

Looks like it’s this pattern, right?:

Rhinopolyhedra’s grasshopper components don’t make it easy for me to sort through all the options.
I wonder if there would be an easy way to sort them by number of faces, number of vertices, like in the Rhino version of the plug in. Or, more interestingly, I wonder if there’s a way to sort them by the amount of variation in distance between the centers of faces or between vertices.

1 Like

Yes, they are chiral and yes, that looks like the same one in RhinoPolyhedra (topologically at least - the distances are slightly different for the version with tangent circles).
I didn’t realise these chiral ones were included there too. I agree - there’s a great collection of polyhedra included, but more ways to navigate them would be nice.