MagicTile
geometrical and topological analogues of Rubik's Cube



The original, pristine state

Klein's Quartic, 24 colors, 3-per-side, pristine

Hexagonal (a Rubik Torus!), 9 colors, 5-per-side, scrambled

Professor's Cube checkerboarded

Jing's Pyraminx, 4 colors, 7-per-side, solved

Dodecagonal, 6 colors, 3-per-side, scrambled

...and many more!
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!

















Ready?  First, please take a moment to consider supporting this site:



Download the Version 2 Preview - Requires .NET runtime 4.0

This version is a big step forward from the original project goals described above, now offering:
  • general {p,q} tilings
  • more general twisting (edge and vertex turning puzzles)
  • better Poincare Disk projections
  • support for non-orientable topologies like Klein Bottles
  • smooth hyperbolic panning (my favorite new feature)
  • "infinite regular polyhedra" puzzles
  • and more!

Download Version 1 - Requires .NET runtime 3.5 or higher

I recommend the v2 preview instead, but will leave this here until v2 supports spherical puzzles and puzzles with n slices-per-side.  If you'd like to play with those, this older version is still required.