designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Goldberg Polyhedra

April 11, 2025 | Algorithms
#goldberg-polyhedra #grasshopper #polyhedra #rhino-python

Although it appears simple, Goldberg Polyhedra in Grasshopper became a tough challenge, which I like a lot. I spent about 24 hours attempting to generate these polyhedra. I started with Goldberg’s original method. This creates an equilateral triangle using coordinates denoted as m and n on a hexagonal grid. Then, we place this triangle onto the faces of an icosahedron. Finally, we project them onto a concentric sphere. We can create many polyhedra by changing the values of m and n. Up to this point, everything seemed fine. However, I realized that, by doing this, I could not generate planar surfaces using the Boundary Surfaces component. I tried going back and rebuilding the Goldberg Polyhedra in various ways, multiple times. The Patch component worked somewhat, but still no luck with planarity.

Goldberg Polyhedra animation

I learned from the literature that this is, in fact, an optimization topic. Goldberg’s original method does not guarantee that all faces will be planar. So, I started to get a bit frustrated, and suddenly I remembered a magical component in Grasshopper, which provided a much simpler and planar solution. It is the mighty Faceted Dome component, which solved this problem quickly and elegantly. Instead of projecting the vertices of the hexagons, I now project their center points. Faceted Dome happily turns them into planar surfaces on a sphere, forming a very close approximation of Goldberg Polyhedra. This was a bit disappointing because I wanted to derive the mathematical solution myself. However, once I realized optimization was required, it stopped being fun for me, so I decided to finish it this way. The result guarantees that each face is now planar and a closed solid is formed. The Faceted Dome component sometimes fails to generate the surfaces. If this happens, you can adjust the knob and make it work again. Below is the resulting Grasshopper definition. Note that there is a Python 3 component that calculates the m and n values according to the original formula. Overall, it was a good exercise in Grasshopper.

Goldberg Polyhedra Grasshopper definition
Goldberg Polyhedra goldberg-polyhedra, grasshopper
Grasshopper definition (GH)Download

Cite this post

Yazar, T. (2025, April 11). Goldberg Polyhedra. designcoding. Retrieved October 3, 2026, from https://www.designcoding.net/goldberg-polyhedra/

Related Posts

Dual Polyhedra in Grasshopper

October 7, 2025

Exploring dual polyhedra in Grasshopper is an interesting topic. In this post, I try to generate the dual of any polyhedron using Rhino Python and possibly Grasshopper. I developed this code for Rhino Python earlier here, and now I have converted it into a Grasshopper-Python component for better usability. I start the process by breaking the polyhedron into individual faces and gathering the corner points of each face. These points become the vertices of the dual polyhedron. Then, for each…

RHWC of Convex Polyhedra

September 12, 2026

Hot-wire cutting (HWC) is a cost-effective subtractive fabrication technique used across many industries. The basic idea of HWC is to cut a block of material by melting it with a resistance-heated wire under tension. It is effective for materials with low melting temperatures, such as expanded polystyrene (EPS) and extruded polystyrene (XPS). Generally, HWC is associated with mold production in the architecture, engineering, and construction (AEC) industries. Robotic hot-wire cutting (RHWC) is a subtopic of HWC. In a standard RHWC…

Coding the Dodecahedron

March 7, 2024

Here is a method for coding the dodecahedron and all its irregular variants in Grasshopper as quickly as possible. I utilized the golden ratio rectangles, usually used to construct the sister polyhedron, the icosahedron. However, the magic component of the Grasshopper, the Faceted Dome rescued me again to generate the dual of it, the dodecahedron. This is a special platonic solid, which has 12 regular pentagonal faces. There are several techniques that I generally prefer to use in Grasshopper. You…

Dual Polyhedra Generator

August 3, 2017

According to Wolfram, By the duality principle, for every polyhedron, another polyhedron exists in which faces and polyhedron vertices occupy complementary locations. This polyhedron is known as the dual, or reciprocal”. We can use this method to generate new polyhedra from known ones. I tried to develop a Dual Polyhedra Generator in this Rhino Python script. First, the script asks a user to select a closed polysurface object. Then, it attempts to identify the area centroids of the faces. By…

Generating Harmonic Motion

September 21, 2026

While trying to program the curves produced by Spirograph toys in Grasshopper, I took a slightly different path. The topic eventually led to a broader heading: harmonic motion, and from there, to the Fourier Series we looked at previously. This simple Python code models Fourier Synthesis, driven by circles of different radii in a very straightforward way. The Python component sets up a loop that calculates the effect of each circle to the x and y values, individually. In this…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #design-education
    • #robot
    • #parametric-surface
    • #terrain
    • #tessellation
    • #kuka-prc
    • #rhinoceros
    • #tutorial
    • #curvature
    • #eps-foam
    • #hotwire-cutting
    • #fourier
    • #computational-geometry
    • #visualization
    • #dual
    • #parakeet
    • #pattern
    • #simulation
    • #vector-field
    • #growth
  • Search

  • Support designcoding!

  • Enjoying designcoding? Support me on Patreon to keep it growing. Thank you!

  • copyright 2026 designcoding.net | about | privacy policy | end user license agreement