From Mathematics, Structure, and Philosophy to Code Implementation

This article aims to deepen understanding of the dome not only through its visual beauty and structural rationality, but also through its underlying mathematical principles and generative methods. In addition, practical visualization examples using Processing are introduced, allowing readers to experience structural concepts through actual implementation.

The complete sample code for this article is available for download on Patreon.
Support my Work:) / Coffee Supplier on Patreon

1. Buckminster Fuller

Buckminster Fuller (1895–1983) was an American architect, inventor, philosopher, and structural designer. His core philosophy centered on the pursuit of “doing more with less”—achieving maximum effect with minimal resources. He viewed structures as flows of forces rather than static forms, an unconventional perspective that strongly influenced his designs.
The geodesic dome emerged from this philosophy. It was conceived not merely as an architectural form, but as a structure that combines efficient force distribution with exceptional lightness.

wikipedia / Buckminster_Fuller

2. Fundamental Concept of the Geodesic Dome (Sphere)

The term “geodesic” refers to the shortest path between two points on a curved surface. In a geodesic dome, triangular panels are arranged based on these shortest paths on a spherical surface.
Triangles are used because of their high structural stability and resistance to deformation. By relying on triangular units, large domes can be constructed using relatively few components, achieving both light weight and structural strength at the same time.

3. Mathematical Foundations: Platonic Solids and Spherical Approximation

Many geodesic domes are based on Platonic solids, particularly the icosahedron. The icosahedron consists entirely of triangular faces and offers a very efficient approximation of a sphere. Its vertex arrangement is closely related to the golden ratio, a proportion that contributes both to geometric elegance and structural stability.

However, an icosahedron itself is not a sphere. To approximate a spherical surface, the triangular faces are subdivided into smaller triangles. In geodesic dome design, the goal is not to recreate a mathematically perfect sphere, but rather to prioritize material efficiency and structural rationality while achieving a visually spherical form.

4. Modifying Face Density: Frequency (V-Number)

4.1 What Is the V-Number?

The V-number (frequency) indicates how many times each triangular face is subdivided.

  • 1V: no subdivision
  • 2V: each triangle is divided into 4 smaller triangles
  • 3V: each triangle is divided into 16 smaller triangles

As the V-number increases recursively, the surface becomes finer and the approximation to a sphere improves. By adjusting the V-number, it is possible to control both the geometric resolution of the dome and its closeness to a true spherical form.

V-NumberTriangle SubdivisionNumber of Faces (Approx.)Characteristics
1VNo subdivision20The icosahedron itself; coarse structure with a low sense of spherical form
2VEach triangle subdivided into 480Slightly improved approximation of a sphere
3VEach triangle subdivided into 16320Commonly used for small-scale domes
4VSubdivided into 641,280Much closer to a sphere; suitable for medium to large domes
5VSubdivided into 2565,120High precision; suitable for large exhibition domes
6VSubdivided into 1,02420,480Extremely smooth; high computational and construction cost

4.2 What Does Increasing or Decreasing the Number of Faces Mean?

  • Increasing the number of faces (raising the V-number) results in a form that more closely approximates a sphere, enhancing visual smoothness and aesthetic refinement.
  • Decreasing the number of faces (lowering the V-number) reduces the accuracy of the spherical approximation, but strengthens the polyhedral character of the form.

It is important to note that the V-number is a discrete integer value. It cannot be adjusted continuously or arbitrarily, but only in fixed steps.

Even when the V-number is increased, not all strut lengths necessarily become perfectly identical. This is due to mathematical constraints that arise during spherical projection. Fuller regarded this non-uniformity not as a flaw, but as a design characteristic that could be effectively utilized for efficient force distribution.

5. Computational Generation: Implementation in Processing

By generating a geodesic dome computationally, the structural principles can be examined visually. Changing the V-number allows immediate observation of how the form evolves, making this approach useful both for learning design principles and for artistic expression.

A basic implementation flow in Processing is as follows:

  • Define the vertices and faces of an icosahedron
  • Recursively subdivide each triangle (according to the V-number)
  • Normalize the subdivided vertices onto a spherical surface
  • Render the result as a triangular mesh

1. Defining the Vertices and Faces of an Icosahedron

First, define the icosahedron, which serves as the geometric foundation of the geodesic dome.


ArrayList vertices = new ArrayList();
ArrayList faces = new ArrayList();

void createIcosahedron() {
  float t = (1 + sqrt(5)) / 2; // Golden ratio

  // Define vertices of the icosahedron
  vertices.add(new PVector(-1,  t,  0));
  vertices.add(new PVector( 1,  t,  0));
  vertices.add(new PVector(-1, -t,  0));
  vertices.add(new PVector( 1, -t,  0));

  vertices.add(new PVector( 0, -1,  t));
  vertices.add(new PVector( 0,  1,  t));
  vertices.add(new PVector( 0, -1, -t));
  vertices.add(new PVector( 0,  1, -t));

  vertices.add(new PVector( t,  0, -1));
  vertices.add(new PVector( t,  0,  1));
  vertices.add(new PVector(-t,  0, -1));
  vertices.add(new PVector(-t,  0,  1));

  // Define triangular faces using vertex indices
  faces.add(new int[]{0,11,5});
  faces.add(new int[]{0,5,1});
  faces.add(new int[]{0,1,7});
  faces.add(new int[]{0,7,10});
  faces.add(new int[]{0,10,11});
  // Remaining faces omitted for brevity
}
  • Vertices are defined using coordinates that include the golden ratio
  • Faces are managed as sets of vertex indices

2. Recursively Subdividing Each Triangle (V-Number)

Based on the V-number, each triangular face is recursively subdivided into four smaller triangles.


ArrayList subdividedFaces = new ArrayList();

void subdivideTriangle(PVector a, PVector b, PVector c, int depth) {
  if (depth == 1) {
    subdividedFaces.add(new PVector[]{a, b, c});
    return;
  }

  PVector ab = PVector.add(a, b).mult(0.5);
  PVector bc = PVector.add(b, c).mult(0.5);
  PVector ca = PVector.add(c, a).mult(0.5);

  subdivideTriangle(a, ab, ca, depth - 1);
  subdivideTriangle(b, bc, ab, depth - 1);
  subdivideTriangle(c, ca, bc, depth - 1);
  subdivideTriangle(ab, bc, ca, depth - 1);
}

  • The V-number corresponds to the recursion depth
  • One triangle → four smaller triangles
  • The total number of faces increases exponentially

3. Normalizing Subdivided Vertices onto the Sphere

Vertices generated through subdivision initially lie on planar surfaces and must be projected onto a sphere.


PVector normalizeToSphere(PVector v, float radius) {
  v.normalize();
  v.mult(radius);
  return v;
}

Within the subdivision process, the following steps are applied:


ab = normalizeToSphere(ab, R);
bc = normalizeToSphere(bc, R);
ca = normalizeToSphere(ca, R);
  • Convert each vertex into a unit vector using normalize()
  • Multiply by radius R to place the vertex onto the spherical surface

4. Rendering as a Triangular Mesh

Finally, the resulting set of triangles is rendered as a mesh. This is not a “perfect sphere,” but a rational approximation.


void drawMesh() {
  stroke(255);
  noFill();

  for (PVector[] tri : subdividedFaces) {
    beginShape();
    vertex(tri[0].x, tri[0].y, tri[0].z);
    vertex(tri[1].x, tri[1].y, tri[1].z);
    vertex(tri[2].x, tri[2].y, tri[2].z);
    endShape(CLOSE);
  }
}
  • All faces are triangular
  • Wireframe rendering is effective for understanding the structure

By following this process, it becomes possible to learn the direct correspondence between mathematical principles and algorithmic implementation.

6. How to Interpret Geodesic Forms

A geodesic dome is not merely an architectural form, but a convergence point of mathematics, structure, philosophy, and algorithms. By visualizing it in programming environments such as Processing, Fuller’s ideas can be experienced in a contemporary context and applied to design and art production.

An important characteristic is the ability to freely adjust the degree of spherical approximation and the visual impression by controlling the number of faces and the V-number.

  • As architecture: a lightweight and stable dome structure
  • As a mathematical structure: subdivision of an icosahedron and spherical projection
  • As a generative form: reproducible in Processing and other CG environments
  • In connection with art, sound, and data: applicable to visualization, acoustics, and interaction

7. Work Example: Geodesic Sphere: Subdivision 1

Geodesic Sphere: Subdivision 1
Sound Visualization, Sound on.
Sound: Dry ice / BGD_SOUNDS (ICEFric_Dryice, Glass Tea Pot, Stress, Squeak, Clink_BGDS_ AKG C411 PP, 192-32)

Recommended Book / Generative art for beginner

Generative Art: A Practical Guide Using Processing – Matt Pearson

Generative Art presents both the techniques and the beauty of algorithmic art. In it, you’ll find dozens of high-quality examples of generative art, along with the specific steps the author followed to create each unique piece using the Processing programming language. The book includes concise tutorials for each of the technical components required to create the book’s images, and it offers countless suggestions for how you can combine and reuse the various techniques to create your own works.

Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
—–
► Generative Art: A Practical Guide Using Processing – Matt Pearson
Publication date: 2011. July

 Support my Website
By using our affiliate links, you’re helping my content and allows me to keep creating valuable articles. I appreciate it so much:)

BGD_SOUNDS (barbe_generative_diary SOUNDS)

barbe_generative_diary SOUNDS will start sharing and selling a variety of field recordings collected for use in my artwork “Sound Visualization” experiments. All sounds are royalty-free.

Link / BGD_SOUNDS on bandcamp