Exploit the fact that the vertices of the dual to a Platonic solid correspond to the centers of the faces of the solid itself. For instance, the dual to a cube is a regular octahedron, and the six vertices of this octahedron are in the directions of the centers of the faces of its dual cube.
Find the normalized directions of the face centers of the cube (for instance) this way:
FaceCenters = Normalize /@ PolyhedronData[PolyhedronData["Cube", "Dual"], "Faces"][[1]];
The {x,y,z}
direction in Euclidean coordinates as a function of spherical angles θ and φ are of course:
x[θ_Real, φ_Real] := {Sin[θ] Cos[φ],
Sin[θ] Sin[φ],
Cos[θ]}
Now sweep through all spherical angles, and for each corresponding direction find the nearest face center direction (i.e., the one with the smallest angle to the direction defined by θ and φ). For each such direction, the distance to the surface is 1/Sin[ψ], where ψ is the scalar angle between the candidate direction and its nearest face direction:
SphericalPlot3D[
1/Sin[x[θ, φ].Nearest[FaceCenters, x[θ, φ]][[1]]],
{θ, 0, π}, {φ, 0, 2 π},
PlotPoints -> 100] // Quiet
If you repeat with a Tetrahedron, for instance, you get this:
If you repeat for an Octahedron, you get this:
If you repeat for a Dodecahedron, you get this: