Icosahedrons | How Blenders IcoSpheres work

Icosahedron / Icosphere generation process Blender

For the research on my planet renderer I have been looking into how icospheres are constructed. The process is rather simple:

  1. Define the triangle edges with three intersecting planes that use the golden ratio (1+sqrt(5))/2 : 1Golden ration icospher Blender
  2. Create 20 triangles between the vertices of those planes:
    Icosahedron triangles wireframe blender icosphere
    12 vertices

    icosahedron blender icosphere triangle wireframe
    20 triangles
  3. Subdivide those triangles and keep them in the shape of a sphere by making sure the distance from the center is the radius of the sphere:
    Blender icosphere icosahedron subdivision 1
    80 triangles
    icosahedron blender icosphere subdivision
    320 triangles
    Icosahedron Blender icosphere subdivision
    1280 triangles


There is barely a noticable difference from how icospheres look like when adding them via the Add Mesh menu in Blender:Blender icosphere

The nice thing about icosahedrons is that they use equilateral triangles of the same scale everywhere, so they have a nicely distributed amount of surface detail, so it might be quite ideal for rendering of planets.

Author: Leah Lindner

Hi, you are looking at the portfolio of a German-English game developer with a focus on graphics programming. I love finding out how things work and visualizing them in a creative way using computer technology. I first became interested in computer graphics when I started creating 3D art using Blender in 2008. After majoring in programming at secondary school and also teaching myself digital painting, I moved to Belgium to take a Bachelor in Digital Arts and Entertainment. Following work on projects in both film and video games, I have increasingly focused on graphics programming, and moved to Brighton to work as a GameDev at Electric Square.

1 thought on “Icosahedrons | How Blenders IcoSpheres work”

Leave a Reply

Your email address will not be published. Required fields are marked *