Equilateral triangle dome

Hi!

I have a module for an equilateral triangle that I want to use to create a geodesic dome. The dome doesn’t need to be perfect; a jagged appearance is acceptable. The same for the height, it does not need to be the same for the radius either.

I’d like to know how to construct a geodesic dome in Grasshopper with a fixed triangle size. My goal is for the triangle size to remain constant even as I change the dome’s radius. However, I realize that I can’t simply use a slider to adjust the radius, since not all values will correspond to an integer multiple of my module size. Instead, I’ve compiled a list of specific radii that work well with my triangle size.

In the code is 3 ways I have tried, but it does not give the same triangle size for all.
Equilateral triangle geodesic dome.gh (16.9 KB)

Could you guide me on how to achieve this? Thank you!

Hi @Sofie3,

Rhino can create an icosphere - a subdivided icosahedron.

test_icosphere.gh (3.2 KB)

Maybe that’s useful?

– Dale

When I tried your definition, I see this:

I’m running Rhino 7 SR37 2024-4-16. I’ve seen this a couple times recently, and not sure what the problem is / how to fix it. Any advice appreciated!

Hey @Bruce_Shapiro - here is a V7 version:

test_icosphere_v7.gh (3.0 KB)

– Dale

Thanks @dale!
But I’m also trying to understand the Python 3 Script error. Is there anything I can do on my end, short of upgrading to R8 to avoid this in the future?

Sorry, no.

– Dale

Good to know. But I also learned something. After reading your description of an icosphere and its definition, I set off to created one using components. Took me a bit, and used Lunchbox for subdivision, but it worked. Felt proud about it, until I saw that one of the standard mesh components, under Polyhedron, is “create mesh icosphere!”
test_icosphere doh.gh (13.2 KB)
:man_facepalming:

You can ask for the R8 Python source code and copy/paste it to the R7 Python component.

import Rhino
plane = Rhino.Geometry.Plane.WorldXY
sphere = Rhino.Geometry.Sphere(plane, radius)
a = Rhino.Geometry.Mesh.CreateIcoSphere(sphere, subdivisions)
1 Like

RhinoPolyhedra does provide an IcoSphere component. However, not everyone has it (nor wants it)…

– Dale