static private Point[] dodecahedron() {
        Point[] ret = new Point[20];
        final double GOLDEN = (1 + sqrt(5)) / 2;
        int i = 0;
        for (int x = -1; x <= +1; x++) {
            for (int y = -1; y <= +1; y++) {
                for (int z = -1; z <= +1; z++) {
                    if (x * y * z != 0) ret[i++] = p(x, y, z);
                    else if (y * z != 0) ret[i++] = p(0, y / GOLDEN, z * GOLDEN);
                    else if (z * x != 0) ret[i++] = p(x * GOLDEN, 0, z / GOLDEN);
                    else if (x * y != 0) ret[i++] = p(x / GOLDEN, y * GOLDEN, 0);
                }
            }
        }
        return ret;
    }