Sometime in the late 1970s, I think, my family sublet a room in our house to a Hungarian math professor and his family. They gave us a gift from Hungary: a plastic toy cube with a different color on each of its rotating faces. We had no idea that within a couple of years, it would be one of the most popular toys in the world.

At some point in the next couple of years, my father went down to Santa Cruz to take a math class there. I vaguely think the topic may've been functors. When he came home, he brought with him a few photocopied sheets of paper on which were described a solution to the Rubik's Cube, written by the professors who'd taught the class.

I'm not sure whether the Cube had become popular yet at that point, but I believe it was before the Simple Solution was published; it was certainly before I had seen a solution. Up to that point, I think I had been able to solve one face at a time, but I had never been able to solve the whole cube. So I practiced and memorized the solution, and got fairly fast at it, and went on to place second (iIrc) in my 8th-grade cube-solving competition. Being able to solve the Cube was also a good party trick; I did it for my family enough times that one of my uncles became convinced that I could solve it behind my back.

I remained vaguely interested in the world of cubing, but the mathy discussions of it were over my head (I still have the 1981 edition of David Singmaster's Notes on Rubik's Magic Cube, but I never read it all the way through), and most of the algorithms I saw were neither as fast nor as elegant as the ones I knew, so I mostly set cubing aside. And then a couple years ago, some of my friends' kids started getting interested. And I started trying to find the photocopied instructions that I had learned from, but even though I've seen those pages lying around my house dozens of times over the years, every search in the past year or two has been fruitless.

I was talking with a young friend about cubing a couple of weeks ago, and lamenting my inability to find those instructions—and it dawned on me that I could reconstruct them. And that's what I've now done.

I haven't yet taken the time to write up these notes as a completely detailed solution, and I haven't made the illustrations that would make them much easier to follow. But knowing me, if I wait to finalize and polish these notes, it'll take me years to post them. So I'm just gonna go ahead and publish what I've got. At some future time, if I do some more polishing, I may post a revised version.

I learned almost all of the move-sequences below from the Santa Cruz math professors who wrote the instructions I memorized. Unfortunately, I have no idea who they were. I spent some time looking around online to see if I could come up with any likely candidates, but couldn't find anyone.

So: if you're the author of these instructions, or if you know who is, drop me a note! I'll be happy to credit the authors, I just can't find their names.

And if I do find my copy of the instructions at some point, I'll update this post.

[Note added 10 July 2015: Only a week after posting this, I found the photocopied instructions! They were written by someone named McKeeman, presumably Prof William McKeeman of UCSC, and derived from Adam Kertesz, a Hungarian programmer. They're dated June 19, 1980.]

## How to solve the 3x3x3 Rubik's Cube

According to a couple of UC Santa Cruz math professors, c. 1980, as filtered through Jed Hartman's memory in 2015.

There are plenty of other systems for solving a Rubik's Cube out there; some are faster than this, some easier. But I find this system to be reasonably elegant, and to provide a nice balance between reasonably high speed and reasonably low amount of stuff to memorize. The first layer is pretty straightforward; the second layer uses only one move-sequence (and its mirror image), and that sequence makes sense if you look at what it's doing, so memorizing it isn't hard; and the third layer relies primarily on two move-sequences (and small variations) that you can use repeatedly.

This is a draft document; at some point I may do some further polishing. Comments welcome.

### Conceptual underpinnings

I should start by saying a couple of things that may or may not be obvious:

- The six center pieces are fixed in place relative to each other.
- Thus, you can tell where each edge and corner piece is supposed to go, relative to the centers, by looking at the colors. For example, a blue/orange edge belongs between the blue center and the orange center.
- Instead of thinking in terms of faces of the cube, think in terms of the cube having three layers: top, middle, and bottom. Thinking in terms of layers is useful because solving only a face doesn't help if the cubies that make up that face are in the wrong positions. So instead of aiming to get all of the faces right, the goal is to get all of the edge and corner cubies into the right positions and orientations relative to the six centers; and the easiest way to do that is one layer at a time.
- Each step of the solution involves figuring out what you want to move or reorient, then doing a defined sequence of moves that carry cubies to new locations, or flip or rotate them.
- These days, a move sequence seems to generally be called an “algorithm.” In the original solution I'm reconstructing, a move sequence was called a “macro.” I sometimes just use the term “move sequence” or even “move.”
- After you've solved a given layer, all subsequent move sequences must end with that layer still solved. So, for example, after you solve the top layer, everything after that has to leave that solved layer alone. (Or rather, has to immediately undo any scrambling of that layer.)

### Notation

I'm using what I think is pretty standard notation. There's a letter for each face: the initials of the words Up, Down, Left, Right, Front, and Back. The URF cubie is the one that's currently in the upper right corner closest to you. A face's letter in a move sequence indicates a clockwise quarter-turn of that face: F means “rotate the front face one quarter-turn clockwise.” A prime mark after a letter means counterclockwise: R' means “rotate the right face one quarter-turn counterclockwise.” A 2 after a letter means rotate a half-turn, so L2 means exactly the same thing as LL or L'L'.

### General outline of solution

Here's the general outline, solving the Cube one layer at a time:

- Place and orient the four edges in the top layer.
- Place and orient the four corners in the top layer.
- Place and orient the four edges in the middle layer.
- Flip the cube over so what was the bottom layer is now the top layer.
- Place the final four corners.
- Place the final four edges.
- Orient the final four edges.
- Orient the final four corners.

### I. Top layer edges

Pick any color to start with, and orient the cube so the center of that color is on top. The first step of solving the top layer is to put each of the top edges in the right place and orientation, without trying to make anything else right.

To do that, follow these instructions for each of the four top edges:

- Keeping the top color on top, pick a top-layer edge position to work on, and rotate the cube so that that edge position is the top front edge (the UF position).
- Find the edge piece that should be in that UF position. For example, if you chose white as your top color, and the center of the front face of the cube is red, then find the red/white edge piece.
- Move the edge piece to the bottom layer. (Should be pretty easy to figure out how to do that.) If getting the target piece to the bottom layer requires you to move any of the top-layer edges that you've got in place already, then move those edges back into place before continuing; in other words, don't lose progress that you've already made.
- Rotate the bottom layer until the edge you're moving is in the DF position (in either orientation).
- Move the edge to the top layer, in either of two ways, depending on its orientation:
- To move it from DF to UF (putting the D face on top):
`F2`

- To move it from FD to UF (putting the F face on top:
`FUL'U'`

- To move it from DF to UF (putting the D face on top):
- Special case: if the edge is already in the right place but it's flipped, you can flip it like this:
`FR'D'RF2`

After you've placed all four top edges, the top face should show a cross, with all of the top edge pieces in the right places and orientations (and on the correct sides of the cube). (Other pieces may also happen to be in place at this point, but usually they won't be.)

### II. Top layer corners

Now do the top corners, while preserving the top edges, but not trying to make anything else right.

To do that, follow these instructions for each of the four top corner pieces:

- Pick a corner position to work on, and rotate the cube to put that corner position at URF.
- Find the corner piece that's supposed to go in that URF corner position.
- If the corner piece isn't in the right place and orientation already, then move it to the bottom layer, and put it in the DRF position, directly below the URF position where you want it to end up.
- Move the corner to the top layer, in any of three ways, depending on its orientation:
- To move it from RDF to URF (that is, the color that's facing right should be up):
`R'D'R`

- To move it from FRD to URF (the color that's facing front should be up):
`FDF'`

- To move it from DFR to URF (the color that's facing down should be up):
`R'DR FD2F'`

- To move it from RDF to URF (that is, the color that's facing right should be up):
- Special case: if it's already in URF and you want to rotate it:
- To rotate it clockwise:
`R'DRFDF'`

- To rotate it counterclockwise:
`FD'F'R'D'R`

- To rotate it clockwise:

After you've placed and oriented the top-layer corners, the top layer is now done, with all of the top-layer pieces in the right places and orientations.

### III. Middle layer edges

Place and orient the four edges in the middle layer, without messing up the top layer.

To do that, follow these instructions for each of the four middle-layer edge pieces:

- Pick a middle-layer edge position to work on.
- Find the edge piece that belongs in that edge position.
- If the piece you need is already in the bottom layer, then rotate the bottom layer so that the edge piece's front face matches the front color. For example, if you want to place a red/blue edge, then rotate the bottom layer so that the red face of the edge is right below the red center on the front face, or the blue face of the edge is right below the blue center on the front face, whichever is feasible.
- Move the edge into place, in either of two ways, depending on its orientation:
- To move the DF cubie to LF (as if you were rotating the front face clockwise):
`RF2DFD'F2R'`

- To move the DF cube to RF (as if you were rotating the front face counterclockwise):
`L'F2D'F'DF2L`

- To move the DF cubie to LF (as if you were rotating the front face clockwise):
- Special case: if the piece you need is already in the middle layer but in the wrong place, then replace it with the piece that should go in that place.
- Special case: if the piece you need is already in the right position, but is flipped, then replace it with any other edge; then put it back, by following the above instructions.

Now the top two layers are done, leaving only the bottom later.

### IV-VIII. Last layer

Flip the cube over so the unfinished layer is on top. The idea for this layer is to get everything into the right places, then flip edges as needed, then rotate corners as needed.

(This is the layer that could most benefit from diagrams, but I haven't made any yet.)

Rotate the unfinished layer until at least two corners are in the right place, if possible. Don't worry about orientation yet.

The main algorithm for this layer is something I'll call “swapper” for convenience: it swaps a pair of corners with each other, and a pair of edges with each other. Specifically, it swaps URF and URB with each other, and swaps UF and LF with each other. Or you can do the mirror image of it to swap ULF and ULB, and UF and RF. It also rotates and flips pieces, but don't worry about that yet.

Here's swapper for the two right corners: `R'F'UFUF'U'FRU2`

And here's the mirror image, for the two left corners: `LFU'F'U'FUF'L'U2`

You'll be doing these two sequences a lot, so it's worth learning them well. And swapper is the kind of algorithm where if you lose track of where you are halfway through, it's very hard to recover from; the cube's state halfway through the sequence looks scrambled. When I'm doing this sequence, I sometimes repeat it to myself under my breath as I go, which seems to help me keep track of it.

So I recommend starting with a solved cube, and doing right-corners swapper over and over, pausing after each time to look at what effects it has on placement. (Don't worry about orientation yet.) Doing it twice puts everything back in the original positions, but with some rotations and flips. Doing it twelve times in a row puts everything back in the original positions and orientations. Then do the same with left-corners swapper.

For this layer, I could write out all the possible arrangements of cubes and which combinations of right-corners swapper and left-corners swapper to use for each, but in practice it's easier to figure that out on the fly. Look at possible places where you could do a swapper to (a) leave all four corners in the right places, while (b) either also putting all four edges in the right places, or leaving three edges out of place. If all four edges are in the wrong places, or if only two of them (across from each other) are, you'll end up having to do swappers more times, so aim for either zero or three edges out of place after a swapper. (You can't have just one edge out of place, of course.)

After you have all four corners in the right positions, you can keep doing swappers; you can swap two corners, then turn the cube around and swap them back, which causes edges to move around but leaves all four corners where they were

In particular, if you have the corners placed correctly but you have three edges out of place, do the following:

To cycle among the three edges (that is, to move UF to UB, UB to UL, and UL to UF), first do right-swapper, then turn the cube around 180 degrees on its y axis (making the F face into the B face), then do left-swapper. In other words, swap UF and UL (and two corners), then turn the cube around and swap the new UF and UR (and unswap the two corners).

After you get all of the final-layer cubes in the right position, you flip any edges that need flipping.

To flip both UL and UF, while leaving UB and UR alone, do right-corners swapper twice in a row. This moves the edges and corners out of place, then returns them, with the edges flipped. Likewise, to flip both UR and UF, do left-corners swapper twice.

Now all the edges are in the right place with the right orientation, and all the corners are in the right place but might be rotated. So the last step is to rotate pairs of corners that need rotating.

For parity reasons, there can never be just one corner that needs rotating. There can be two (one that needs to be rotated clockwise, one counterclockwise), three (all three needing to be rotated clockwise, or all three counterclockwise), or four (in two pairs of clockwise/counterclockwise). Another way to put that: if you add up the number of clockwise degrees that all of the corners need to be rotated, it's always a multiple of 360.

So to rotate URF clockwise and URB counterclockwise, do this: `R'DRFDF' U FD'F'R'D'R U'`

And similarly with rotating any corner clockwise and any other corner (in the same face) counterclockwise. In particular, to work with a different pair of corners, you can do U' or U2 in the middle there instead of U.

There's one more possible case: you may have three corners that are all rotated either clockwise or counter-clockwise. In that case, do that last corner-rotating move to rotate two of them; that gives the correct orientation to one of the three, leaving you with only two that need to be rotated, and you can do that last corner-rotating move one last time to get the two into place.

And you're done!

## Post a comment