Home | 3D Printing |     Share This Page
Platonic Solids I: Vertices and Edges

From abstract idea to physical model

P. Lutus Message Page

Copyright © 2020, P. Lutus

Most recent update:

Introduction | Computer Modeling | 3D Printing the Solids

(double-click any word to see its definition)


Update: See the video version of this article.

This page is part of a series about 3D printing. To acquire a context, readers may want to visit the first page in the series, 3D Printing for Builders.

3D printers represent a new way to build a bridge between the abstract world of ideas and tangible, physical models. These printers also greatly speed up the transition between drawings of parts, and parts. After a major overhaul to get my 3D printer working correctly, I began thinking about ways to forge a link between mathematics and everyday reality, one of my favorite pastimes.

Greek philosopher Plato (and his peer group) crafted a philosophy in which a contrast is made between messy reality and a world view Plato called the Theory of Forms.

In Plato's Theory of Forms, an abstract realm exists that underlies and defines everyday reality. In that abstract realm, geometry defines reality and everyday objects are specific examples of universal forms that live in the abstract realm. To flesh out this idea Plato imagined a set of geometric solids, now called the Platonic Solids, that he thought represented universal representations of everyday objects.

From a modern perspective Plato's Theory of Forms leads to a gradual realization that mathematics defines reality. As just one example, modern physics is defined by its equations, which has two important effects — one, an equation makes testable predictions that in principle could be falsified by empirical experiment, a necessity for science. And two, an equation can be shown to either agree with, or contradict, other equations that address the same physical processes. This mathematical connection puts modern science on a solid foundation, as well as categorically exclude fields that don't have a way to express their ideas in equations, show connections between ideas, or test their ideas against reality.

In this article I show how to build the Platonic Solids using a 3D printer. The result consists of vertices and edges — an article about a different approach that includes faces is found here.

Let's get started!

Computer Modeling
An earlier article on this topic can be found here.

In this section we use geometric equations to model all the Platonic Solids, plus some fun extras, in preparation for 3D printing. The geometric modeler consists of a Python script that creates the geometric description and prepares a form suitable for the modeling program Blender, which creates 3D models suitable for printing.


Readers running Windows will need to install both Python and Blender:

Because Linux distributions have Python installed, Linux users will only need to install Blender from the download page linked above.


These instructions are written for Linux but the Windows procedure should be similar.

Both Windows and Linux users will need these Python scripts:

The program generate_platonic_solids.py is responsible for the mathematical heavy lifting — it contains code for generating vertices and edges for the Platonic Solids plus two interesting extra forms (hypercube and Buckyball). The program generate_all_platonic_solids.py is a simple convenience script that makes the first script generate all the forms, launches Blender for each, and gets Blender to create files suitable for 3D printing. Overall the process looks like this:

generate_all_platonic_solids.py -> generate_platonic_solids.py -> Blender -> result files for each solid.

Use this procedure:

  • Install Python and Blender and download the Python programs listed above.
  • Put the Python programs in the same directory, preferably a new, empty one.
  • In that directory, create a subdirectory named "results".
  • Open a command shell in the new directory and launch the build process like this:
    blender -P generate_all_platonic_solids.py 
  • Users of this generator may want to examine the contents of generate_platonic_solids.py, which contains settings for edge radius and overall size. A small edge radius looks nice when rendered in Blender or a 3D slicer, but is more difficult to successfully print.

  • If all goes according to plan, the directory "results" will contain these 3D printable files:

    • buckyball.stl
    • cube.stl
    • dodecahedron.stl
    • hypercube.stl
    • icosahedron.stl
    • octahedron.stl
    • tetrahedron.stl

  • "Buckyball" and "Hypercube" are modern extras, not included in the classical Platonic Solids collection.

Here are graphic images of all the solids — note the anaglyphic 3D renderings in the right-hand column:

Name Faces 2D Image  3D Image
Tetrahedron 4
Cube 6
Octahedron 8
Dodecahedron 12
Icosahedron 20

Just for fun I added these extras to the classic Platonic Solids collection:

Name Faces 2D Image  3D Image
Hypercube 20
Buckyball 32
3D Printing the Solids

In this section the ideal, abstract world of mathematics ...

Figure 1: 3D printing the Buckyball (in theory)

(This animation was created using the Prusa Slicer.)

... collides with messy reality:

Figure 2: Imperfect outcome

3D Printing Rules

There are some 3D printing rules that, if strictly followed, can lead to nice outcomes. One is that the shape being printed should avoid what are called "overhangs", parts that extend out over empty space. If an overhang is large and/or has an angle greater than 45° with respect to the vertical, printing problems are likely.

Some of the files generated in the prior section are relatively easy to print because they have limited overhangs, or the overhangs don't exceed 45° — examples are the tetrahedron and the octahedron. The latter has some elevated horizontal bridges that can cause problems if the printing scale is large enough or the printer isn't properly configured (temperatures, speeds, and so forth).


As one moves through this project's Platonic Solids files from the simplest to the most complex, one encounters more 3D printing challenges. But the most difficult object is the Buckyball, because of the number of edges (90) and the many acute angles some edges have with respect to the vertical. Only by careful printer tuning and good material choice can one get a reasonable outcome:

Figure 3: 3D Printed Buckyball (click for full size)

Figure 3 shows a fair outcome given the difficulty of the subject. I chose ABS filament for strength, then created perhaps ten iterations as I tuned my printer's parameters. Even in this small-scale image one can see some rough patches caused by overhangs. By clicking Figure 3 and loading the full-resolution image, the reader can get a closer look at the many imperfections in this print.


Printing an acceptable Buckyball of this kind (one composed of edges) is a true test of one's 3D printing skill, but there's a remedy for the problems caused by this approach. The remedy is to 3D print many individual faces of the Platonic Solids and assemble them after printing. The individual faces lie flat on the printer's bed, which assures both adhesion and high quality printing, and the completed faces are then assembled into a Platonic Solid.

This is the topic of my next article.

Home | 3D Printing |     Share This Page