Rubik's Revenge


Rubik's Revenge is a 4x4x4 version of a Rubik's cube.  There are strong similarities between the 4x4x4 version and the traditional 3x3x3 cube, but there are also several important differences.  Perhaps the most important difference is that on the 3x3x3 cube the centers always had a fixed relationship with respect to one another.  In the 4x4x4 version, there is no such relationship.

This page summarizes some of the techniques I use for solving the Rubik's 4x4x4 cube.  It is not a step-by-step walkthough of a solution.


The cube has six faces, which will be called Up, Down,Front, Back, Right, and Left.  Turning a face 90 degrees clockwise is represented by the first letter of the face's name, in upper case.  For example, "R" means to turn the right face 90 degrees clockwise (such that the front right pieces become the top right pieces).  The inner slices are represented by lowercase letters for the face that they are closest to.  For example "r" means to turn the layer just inside of the right face.  A letter followed by a tick mark means to turn the face counter clockwise by 90 degrees (e.g. R').  A letter followed by the number 2 means to turn it twice (180 degrees).  Parentheses are sometimes uses to group moves together for easier readability.

Corner pieces are refered to by their three face names, for example UFR is the top-right corner on the front face.  Edge names are composed of two faces and an inner slice, for example UFr and URl are the two pieces on the upper front edge.  Middle pieces are identified by a single face and two inner slices, for example the four center pieces for the front face are Fur, Ful, Fdr, and Fdl.


I prefer to use a small number of simple general purpose operators as opposed to memorizing a large variety of specialized ones.  One technique for making general operators even more useful is conjugation.

First, it is useful to define the inverse of an operation.  Simply put, and inverse just undoes the operation.  The inverse of a single twist is twisting the same face (or layer) in the opposite direction.  For example, R' is the inverse of R and u is the inverse of u'.  For a sequence of twists, you must go through the steps in reverse order, and use the opposite direction for each twist.  For example, the inverse of U R is R' U'.  One thing to keep in mind is that 180 degree twists are their own inverses (the inverse of R2 is R2).  If you perform a sequence of twists - no matter how complex - and then perform the inverse of that sequence, the cube will be restored to the exact state it was in before you started.

Let's say you have a useful sequence called Y that flips the UF and UB edge pairs without altering anything else on the cube.  What if you need to flip some other two edge pairs?  As long as you don't care about scrambling the rest of the cube, it is proably pretty easy to move the desired edge pairs to UF and UB.  Let's call this sequence of moves X.  Now consider what would happen if you did X Y X'  (where X' is the inverse of X).  First you move the desired edges to UF and UB, but mess up the rest of the cube.  Then you flip UF and UB while leaving the messed up portions perfectly intact.  Finally you do X' which moves the desired edge pairs back to their original location and also unscrambles the rest of the cube. 

Creating sequences of the form XYX' is called conjugation and is a powerful technique.

Treating 4x4x4 as a 3x3x3

If you already know how to solve the 3x3x3 cube, then it is tempting to use the same techniques on a 4x4x4 cube.  The first step is to get the centers correct.  This is actually pretty easy since you can mess up the corners and edges as much as you want.  Be careful to put the colors in a legal arrangement.  It is very helpful to always keep in mind the colors that are supposed to be on opposite sides.  It can also be helpful to place a corner or two as you are working on the centers just to make sure that the colors line up properly.

The second step is to get the edges paired up.  I like the following operator since it rotates three edge pieces without disturbing anything else:

edge-3-cycle: r (U' R U) r' (U' R' U)

This will cycle (DFr UFr FRu).  If you put one half of an edge-pair in UFl and the other half in DFr, then after the edge-3-cycle, the UF edge pair will be matched.  If you are also fortunate enough to be able to move the piece that matches UFr to FRd, then you will get a second matched edge pair at FR.  Generally I don't worry too much about matching two pairs at once, I just keep placing matched edges at UFr and FRd and any other unmatched edge at FR.  Once you get down to 3 unmatched edges you need to carefully line them up so that the edge-3-cycle will solve all three edges at the same time.  If you accidentally go too far an have only 2 unmatched edges, then you'll need to ruin one of the matched ones to create 3 unmatched pairs.

Now the cube can almost be solved like a 3x3x3.  As long as you only use face moves, the centers will remain intact and the edges will remain paired.  Pick your favorite 3x3x3 cube algorithm and get started.  About 1/4 of the time everything will be fine.  The other 3/4 of the time you will run into one or both of the following parity problems:

1) A single edge-pair is "flipped".  This is something that never happens on a 3x3x3 - edge flips must always occur in pairs.  But in the 4x4x4 cube it is possible to swap two edge pieces, which is the equivalent of flipping the edge-pair.  The following operator flips the UF edge pair: (R2 r2 B2) (U2 l U2 r' U2 r U2 F2 r F2 l' ) (B2 r2 R2).  The real work is done by the middle sequence (U2 ... l'), which swaps UFl and UBl but has a side effect of exchanging some centers as well (Ufr and Ubr are exchanged with Dfl and Dbl).  The prefix and suffix sequences move UFr to UBl and also make the center swaps harmless.

2) Two edge-pairs have been swapped.  This is also impossible on a 3x3x3 cube, but happens on the 4x4x4.  A nice edge pair swap operator is (U2 u2 R2 r2 U2) r2 (U2 r2 R2 u2 U2) which swaps the UF and UB edge pairs.  This operator isn't as complicated as it looks since U2u2 and R2r2 can be done at the same time by turning the upper or right half of the cube.  The actual edge exchange happens in the middle r2 move, which swaps to pairs of edges and 4 pairs of centers, but the prefix and suffix insure that the center swaps are harmless.

Depending on your 3x3x3 algorithm (specifically, if you solve corners after edges), you may find that the entire cube is solved except for a single pair of corners that needs to be swapped.  This is actually equivalent to case #2 above.  Give the face with the two corners a single turn, then you should be able to use standard 3x3x3 moves to cycle the corners as necessary.  You will also be able to fix two of the edges, but two edge pairs will still need to be swapped.

The parity fix for #1 is a bit unintuitive, and I prefer algorithms that I understand deeply enough to be able to reconstruct them without memorization.  An alternative to fixing the parity problems is to give a single inner layer one turn.  This will change the edge swap parity back to even, allowing you to fix all of the edges with the edge-3-cycle.  The only problem is that 8 center pieces are now wrong.  Fortunately it is pretty easy to move center pieces around without disturbing edges and corners.  If you want to swap Ubr and Ubl with Fur and Fdr, you can use:

double-center-swap: U2 b' u'd b U2 b' u d' b

A Different Solution

I found the parity problems to be somewhat tedious to fix.  There's another approach to solving the cube that avoids the parity problems by leaving some inner slice operations until near the end.  The process I use is as follows:

  1. Solve the top and bottom centers.
  2. Solve the top and bottom corners (use the same techniques as for a 3x3x3 cube)
  3. Turn the cube so that now the two solved centers are left and right.  Use the edge-3-cycle (or its mirror and/or inverse) to place edges from the r and l layers to the R and L layers.  If you need to make edges cross over from the l to r layers, do (F2 R2 L2 B2 R2 L2), which leaves the R and L layers intact but moves all edges from the r layer to the l layer and vice versa.  Once you are finished with this step both the R and L layers should be completely solved.
  4. The next step is to place the edges in the l layer while leaving R and L intact (but messing up r).  The general operation I use is to move UFl to UFr using (F2 r' F2 r2 F2 r F2)
  5. Solve the edges in the r layer.  Usually it is possible to turn the r layer such that one edge is correct and the other three can be placed using the edge-3-cycle (using conjugation).  In some cases, two pairs of edges need to be exchanged, which I usually solve by doing two conjugated edge-3-cycles.
  6. The only thing left to do is fix the centers.  I usually use variations of