# Rational inscribed realization of the regular dodecahedron

While it is clear that the regular dodecahedron $D$ cannot be realized with all integer coordinates, it is easy to find a polytope, which is combinatorially equivalent (face lattice isomorphic) to $D$ with all coordinates rational. Since $D$ is simple you can just take the hyperplanes that define $D$ and perturb them slightly to make them rational; this does not change the combinatorial type and the resulting vertices will all be rational (and almost lie on a sphere).

There is an especially nice embedding of a dodecahedron combinatorially equivalent to the regular dodecahedron with small integer coordinates, given by André Schulz, see this link:

Is there a polytope combinatorially equivalent to the regular dodecahedron with all rational coordinates, inscribed into the unit sphere?

• I'm not sure I didn't miss something in your question, but points with all rational coordinates are dense in the unit sphere (because stereographic projection maps rational points to rational points). Mar 21, 2016 at 18:15
• @Gro-Tsen: That doesn't mean you can simultaneously move several points small amounts to rational points while keeping the points in each face coplanar. Mar 21, 2016 at 18:31
• @Gro-Tsen, as Douglas Zare pointed out: you break the faces when you just move the vertices to a rational point nearby. If the polytope is simplicial (e.g. the isosahedron) no harm is done. Mar 21, 2016 at 18:57
• @Gro-Tsen: "Inscribed in the unit sphere" means that all vertices must lie in the surface of the sphere, so just shrinking the construction in the picture is not enough. Mar 29, 2016 at 9:44

# An example

Yes, here is a list of rational coordinates lying on the unit sphere, the convex hull of which is combinatorially equivalent to a regular dodecahedron. This polyhedron is invariant under reflections in three orthogonal hyperplanes (having a symmetry group $$C_2 \times C_2 \times C_2$$ of order 8, much smaller than the order-120 symmetry group of a regular dodecahedron):

verts = {
{304/425, 297/425, 0},
{1, 0, 0},
{52/173, 132/173, -99/173},
{52/173, 132/173, 99/173},
{54/175, 22/175, -33/35},
{54/175, 22/175, 33/35},
{44/125, -108/125, -9/25},
{44/125, -108/125, 9/25},
{3236/4325, -1452/4325, -99/173},
{3236/4325, -1452/4325, 99/173},
{-304/425, -297/425, 0},
{-1, 0, 0},
{-52/173, -132/173, 99/173},
{-52/173, -132/173, -99/173},
{-54/175, -22/175, 33/35},
{-54/175, -22/175, -33/35},
{-44/125, 108/125, 9/25},
{-44/125, 108/125, -9/25},
{-3236/4325, 1452/4325, 99/173},
{-3236/4325, 1452/4325, -99/173}
}


Mathematica confirms that the convex hull has twelve pentagonal faces:

In[4]:= InputForm@MeshCells[RegionMeshMergeCells[ConvexHullMesh[verts]], 2]

Out[4]//InputForm=
{Polygon[{4, 17, 19, 15, 6}], Polygon[{1, 4, 6, 10, 2}],
Polygon[{1, 2, 9, 5, 3}], Polygon[{1, 3, 18, 17, 4}],
Polygon[{2, 10, 8, 7, 9}], Polygon[{6, 15, 13, 8, 10}],
Polygon[{3, 5, 16, 20, 18}], Polygon[{11, 12, 20, 16, 14}],
Polygon[{5, 9, 7, 14, 16}], Polygon[{7, 8, 13, 11, 14}],
Polygon[{12, 19, 17, 18, 20}], Polygon[{11, 13, 15, 19, 12}]}


and that the vertices lie on the unit sphere:

In[3]:= Map[Norm, verts]

Out[3]= {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}


# How I found the solution

The main idea was to use stereographic projection to transform the unit sphere onto the plane. This reduces the question to the following equivalent problem:

Does there exist an embedding of the dodecahedral graph into $$\mathbb{Q}^2$$ such that the five vertices of each face are all concyclic?

Now, twenty points are a lot to contend with, so I decided to instead search for a symmetrical solution which has the following three symmetries:

• reflectional symmetry about the x-axis;
• reflectional symmetry about the y-axis;
• inversive symmetry in an appropriate-sized circle centred on the origin.

This reduced the problem to finding six positive rationals $$a,b,c,d,x,y > 0$$ such that:

• $$y < b < d$$ and $$ad > bc$$;
• $$a < x < \sqrt{c^2 + d^2}$$;
• $$(0, y)$$ lies on the circle through $$(c, d), (-c, d), (a, b), (-a, b)$$;
• $$(x, 0)$$ lies on the circle through $$(a, b)$$ and $$(c, d)$$ which intersects the origin-centred circle of radius $$\sqrt{c^2 + d^2}$$ at right-angles;
• $$(x, 0)$$ lies on the circle through $$(a, b), (0, y), (a, -b), (0, -y)$$;

I wrote an integer-arithmetic C program to search through all possibilities of positive integers $$a,b,c,d < 1000$$ satisfying the inequality constraints. For each of these 4-tuples, it computes $$x$$ and $$y$$ (from the penultimate and antepenultimate constraints, respectively), checks whether they're rational (using an analytic formula), and then verifies the last condition.

All of the solutions found by my program were integer scaled-up versions of the same primitive solution:

\$ ./dodeca
22, 21, 22, 54, 40/1, 10/1
44, 42, 44, 108, 80/1, 20/1
66, 63, 66, 162, 120/1, 30/1
88, 84, 88, 216, 160/1, 40/1
110, 105, 110, 270, 200/1, 50/1
132, 126, 132, 324, 240/1, 60/1
154, 147, 154, 378, 280/1, 70/1
176, 168, 176, 432, 320/1, 80/1
198, 189, 198, 486, 360/1, 90/1
220, 210, 220, 540, 400/1, 100/1
242, 231, 242, 594, 440/1, 110/1
264, 252, 264, 648, 480/1, 120/1
286, 273, 286, 702, 520/1, 130/1
308, 294, 308, 756, 560/1, 140/1
330, 315, 330, 810, 600/1, 150/1
352, 336, 352, 864, 640/1, 160/1
374, 357, 374, 918, 680/1, 170/1
396, 378, 396, 972, 720/1, 180/1


(The numbers in order are the values of $$a, b, c, d, x, y$$ in order; the latter two are rendered as rationals because they're not a priori integers.)

I took this primitive solution and computed the vertices as points in $$\mathbb{Q}[i]$$ (identifying the plane with the complex numbers). I divided all points by the Gaussian integer $$c + di$$ to eliminate the arbitrary scale factor, resulting in a set of rational points invariant under inversion in the unit circle. After stereographically projecting back to the unit sphere, this inversion invariance corresponds to a reflectional symmetry through the equator.

EDIT: After porting the code to the GPU and expanding the search range to 10000, the number of known primitive solutions has increased to 3.

Much later EDIT: There exists infinitely many primitive solutions.

• wow! very nice! Jul 25, 2020 at 19:25
• @M.Winter I used this answer: mathematica.stackexchange.com/a/179755 (and they're backticks, not single-quotes) Jul 26, 2020 at 9:11
• Did you profile your code to see where the time goes? If a lot of time is spent in the gcd code, maybe using Knuth's binary version or doing a small table look-up could allow you to extend this computation on a Jetson Nano. Gerhard "Wants To Do Parallel Arithmetic" Paseman, 2020.08.05. Aug 5, 2020 at 19:52
• The gcd function is only called relatively rarely; most loop iterations terminate before reaching this point because either x or y turns out to be irrational. Aug 5, 2020 at 19:55