This program aims to support twisty puzzles based on
regular
polygonal tilings having
Schlafli symbols
of the form {p,3} for any p>=2. That is, all regular tilings of
polygons with two or more sides, where three tiles
(puzzle faces) meet at a vertex. The Rubik's cube is the special
case where faces are squares (p=4). The other familiar special cases
are the Megaminx (p=5) and the Pyraminx (p=3), although you'll
discover the last takes a slightly different form under this
abstraction (akin to
Jing's Pyraminx).
All the other puzzles are new as far as I know, and some may be
surprising, e.g. the puzzles based on
digons (p=2).
Each 2D tiling admits a particular constant curvature (homogeneous)
geometry. The geometry is Spherical for p=2 to p=5, Euclidean (flat)
for p=6, and Hyperbolic for p>=7. Since
you
can't "isometrically embed" the entire hyperbolic plane in
3-space, I have a connection to
hyperpuzzling even though I'm
talking about 2D tilings!
For p>=6, the regular tilings become infinite. Clearly it wouldn't be
fun to solve an infinite number of faces and my computer didn't have
that much memory anyway, so you'll see a
repeating unit of a set of faces for these puzzles. The repeating
patterns are not an arbitrary decision, and only certain patterns
fit together. Furthermore, the various possibilities are all topologically
equivalent with surfaces of a particular
genus. For example, one
could consider the hexagonal puzzles Rubik's Torus
variants (the behavior is
functionally identical to a set of stretchable hexagonal faces
pasted and connected up on a torus). I want to highly recommend
The Shape of Space if any of this sounds interesting, but isn't making
sense due to my explanation skills - that will clear it all up! In
the language of the book, all these puzzles are cell divisions on
surfaces having local geometry of one of the three model geometries,
and certain global topologies.
Of the currently supported topologies, I think the 24-colored
heptagonal tiling based on
Klein's Quartic is the crown jewel. It is
topologically the same as a
3-holed torus. I'd love this puzzle to
have some cool name like "Megaminx" does - I just don't know what it
should be! I've used a simple rule to generate the current set of tilings, though I know more are possible. See
tilings.org for lists.
A key insight in pulling this all together is to understand what
slices should be. For the Rubik's cube, the slicing planes are the
magic that makes it all work, but how does one slice up a flat
tiling of hexagons so that it is analogous to the Rubik's cube? The
hexagonal tiling is only on a single plane! Think about the Rubik's
cube not as a 3D object being sliced by different planes, but as a
2D surface of faces on a sphere
sliced by objects on the surface.
Then the 3D slicing planes can be seen another way, as 2D "slicing
circles" on the surface. These circles are centered on the faces,
and the slicing naturally generalizes to all of the puzzles when
looked at this way. A posteriori, the appearance of circles makes
perfect sense - the only way to twist a portion of a surface and avoid
any overlapping material is to rotate everything inside a circle.
When it came to presenting the puzzles, what I chose to do was
stereographically project
them onto a flat plane from
their respective geometries. This ties the views of all the puzzles
together and gives a unique and fun view of the familiar puzzles as
well. Just remember that except in the hexagonal case, the program
is showing a warped view of the puzzles due to this projection, and
that "in reality" (whatever that means!) all faces are actually
identical. This is similar to how flat maps of the earth inevitably get
distorted. In the future, it would be cool to show the puzzles unprojected as well, like the
POV-Ray rendered image at the top, so that all faces
appear more identical. It would also be cool to show the infinite tilings mapped to their various topological shapes, which would warp
the faces in different ways than the projection does now, but I
digress.
Lastly, the program also supports varying the number of slices per
side, so Rubik's Revenge, Professor's Cube, Gigaminx, Petaminx, et
al are all there!
And lastly lastly, these thoughts are generalizable in many other ways. One
could extend to tilings without simplex vertex figures (having 3
tiles meet at a vertex is nice though because it leads to a familiar
center/edge/corner piece hierarchy),
or further to uniform tilings instead of only regular ones.
One could have slicing circles centered on edges and/or vertices instead of
only faces, a la Wouter's
Ultimate Magic Cube (or while I'm on this crazy train, I'll
even mention generally positioned slicing circles for that matter).
It's also generalizable to higher dimensions - the 3x3x3x3 can be viewed
as a regular polyhedral tiling of the hypersphere, sliced up by
"slicing spheres" on the 3D surface of the hypersphere. And there are
polyhedral tilings
that induce 3D hyperbolic geometry (instead of the 2D hyperbolic
geometry of this program).
etc. etc. etc. The abstractions of the Rubik's Cube *never* end!