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 September 13, 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…

Flow Map on Terrains

September 11, 2026

We previously looked at the terrain generator script we used in projects with first-year architecture students over here. Later on, we added a few analysis modules to this tool. You might remember the slope analysis tool from this link. Today’s topic is another type of analysis: flow. The idea for this code wasn’t actually mine; I developed it by looking at an existing script based on Serkan Uysal’s suggestion. Unfortunately, I don’t know who originally wrote it. Keeping track of…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #tutorial
    • #rhinoceros
    • #archimedean-solid
    • #robot
    • #terrain
    • #parametric-surface
    • #kuka-prc
    • #tessellation
    • #truncated
    • #folding
    • #unrolling
    • #simulation
    • #vector-field
    • #growth
    • #linear-algebra
    • #sandblasting
    • #stone
    • #parametric-curve
    • #animation
    • #dual
  • 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