SOAP Tutorial and Algorithms

SOAP is an interesting method for solving the 2x2x2 cube which was proposed by Justin Jaffray. It stands for Separate, Orient All, Permute. It is possible (but somewhat difficult) to 1-look solves with this method if you learn the 2-gen orientation algorithms. In general though, it should be considered a 2-look method.

I used to think this method had a lot of potential, and I even began learning it at one point. However, I now think that there are other intermediate and advanced methods which may make more sense to learn than this one.

Step 1 - Separate

This step involves separating 2 opposite colors into opposite layers while simulataniously making a bar on the bottom layer. This sounds more complicated than it actually is. Basically, you just solve a face, but 2 adjacent pieces of that face don't have to be oriented. This can usually be done in just one move. It can be done in only 2 moves about 99.7% of the time. You should plan on looking ahead to the next step during your inspection time.

At first, it can be difficult to see everything during the 15 second inspection time. But with practice, you should get faster that this. Here is what you need to look for during your inspection:

The non-oriented pieces in your bottom layer will tell you which subset of algs that you will be working from in step 1. It is absolutely critical that you work this out during inspection. Luckily this is very easy, so you shouldn't have any trouble with this.

Now you need to figure out which case you have for your top layer. These are basically OLLs, and some other cases that are similar to OLLs. Recognition is very easy, so even if you DON'T look ahead to this and just recognize it during the solve, you aren't going to be any worse off than if you were using ortega method. But the advantage of SOAP is that you CAN look into the solve much more easily than with ortega, so we should try to take advantage of that. You want to predict the orientation of 3 of your opposite colored stickers. By that, I mean, if you did white for your bottom layer, then you need to look for where the yellow stickers are. You only need to figure out 3 of them, because the 4th one can always be inferred based on the position of the other 3.

Step 2 - Orient All

This step requires one of 53 algorithms. Of those, 7 are normal OLLs. Many of the algorithms re-use the exact same recognition, which makes learning them a lot easier. It is possible (but not optimal) to do every case with 2-gen algs. A list of algorithms is below.

Step 3 - Permute

This step involves permuting both layers at the same time. You simply use PBL algorithms here, as you would with Ortega. I highly recommend learning to do the algorithms from various angles, so you can avoid rotations.


Due to the fact that the SOAP method starts off with separation, this brings out some interesting properties of the cube. By using 2-gen orientation algorithms, it drastically limits the amount of permutation that can happen during the orientation step. In fact, there are only 2 things that can happen to the permutation while orienting with a 2-gen alg. The first case is that NO PIECES change their permutation during the orientation step. And the other case is that you will have an adjacent swap on the bottom-right side and a simultaneous diagonal swap on the top layer. What this means, is that by simply memorizing whether or not each 2-gen algorithm has a swap on bottom, you can fully predict which PBL case you will get. If you use an alg that isn't 2-gen, then the PBL can't be predicted so easily. Fortunately, more than half of the SOAP algorithms have really nice 2-gen orientation algs. But unfortunately, several cases have really nasty 2-gen algs which can require up to 11 moves. I think a downside to using 2-gen algs for every case is that it would be more difficult to keep them from getting mixed up in your mind, as having a wider variety of moves would make the algorithms more distinct and memorable.

Orientation Algorithms

The following is a complete listing of orientation algorithms for the SOAP method.

I recommend learning them in the order in which they are presented below. For all cases, the first alg listed is the one which I think is the quickest to do. For cases where this is not a 2-gen algorithm, I have also provided at 2-gen alg for the case. 2-gen algorithms will have an [s] after them if they cause a permutation swap on the bottom layer. "Permutationless" algorithms which don't affect permutation have a [p] after them.

Ortega Subset

The first 7 cases are simply the orientation algorithms from the Ortega method. You use these when you solve a complete face on the bottom layer. I won't be printing these here, because I'm assuming that you already know Ortega before starting with SOAP.

SS Subset

The following 16 algorithms are also used in the SS method. These are used when a single corner in the bottom layer is unoriented. This unoriented corner should always be held in the Bottom-Right-Front position.

Bottom →
Top ↓
Bottom →
Top ↓
y' RU2R'UR2U'R2UR' [p]
R2UR2U'RU2R'U2R [p]
(U')R'U2RU'RU'R2U2R' [s]
RU'R'U2RU2R' [p] RU'R'UR2U'R2' [s]
RU2R'U2RUR' [p]
R'URUR' [s]
R'U'RUR'UR2U'R2 [p]
y' RU'R'U'R [s]
(U)RU'R'UR'U2RU2R [p]
y' R'U'RUR'U'R [p] RUR'U'RUR' [p]
RU2R'U'R2U'R2' [s]
RU2RU2R2U'R2U'R2 [p]
y' RUR2U'RUR2 [s]
x UR'U'RUR'U'R [p]
RU'R'URU'R' [p] y' R'URU'R'UR [p]
(U)RU'RU2R'UR2 [s]
(U2)RU'R2U2RUR2U'R2U2R [p]
y' R'UR'U2RU'R2 [s]
R'U'RU'RU2R'UR'U'R2 [p]
y' R'U2R'UR'U2R' [s]
R'U2RU2R'U2RU'RU'R2 [p]
RU2RU'RU2R [s]
R2UR'UR'U2RU2R'U2R [p]

Bar Subset

The following 7 cases are used when the two unoriented pieces of the bottom layer form a bar on the side.

Bottom →
Top ↓
(U)R2U2R'UR'U2RUR2 [s]
RU'R2U'R2UR'U'R2UR' [p]
(U)R2U2R'U'RU2R'U'R2 [s]
(U)R'U2RU'RUR2U'RUR' [p]
R'UR2U'R [s]
R'U2R'U2RU'R2U'R [p]
R'U'R2U'R2U'R' [s]
R'U2R2U'RU2R2U'R2 [p]
(U')R2U'R2U2RU2R'U2R2 [p]
R2U'R2U2R' [p]
(U)R2U2R'U'R2U2R [p]

No Bar Subset

These 7 algorithms are used when neither of the 2 unoriented pieces on the bottom layer are pointing to the side.

Bottom →
Top ↓
y' RU2RU2R'B
RUR'UR2U2R'U2R' [s]
R2U'R'UR2U'R2U'RU2R' [p]
y' B'RU2R'U2R'
(U2)RUR'U'RU2R'U2R [s]
(U)R'U2RU2R'U2RUR2UR' [p]
R'UR2UR'U2RU2R [p]
RU2R'U2RU2R'U2R [s]
R'U2R2U'RU2R2U'R2 [p]
y FR2U'R2
R'U2R2U'R2 [p]
y' R2BR2B'R2
R'U2RU2RU2R'UR2 [p]
R'U'RU'RU'R2 [p]

Asymetric Subset

For these remaining 16 cases, you have 2 unoriented pieces on the bottom layer, and only one of them points to the side.

Bottom →
Top ↓
Bottom →
Top ↓
(U')R2URU'RUR2 [p]
y R'URU2R'F'
R2U'R'UR'U'R2 [p]
x RUR'U'RUR'U' [p] x URU'R'URU'R' [p]
R2UR'U2R'U'R [p] R'URU2RU'R2 [p]
R2U2RU2R'UR'U2R [s]
R'U'R2UR2U'R2UR'UR' [p]
R2U2R'U2RU'RU2R' [s]
R'UR'U2RU'RU'R'UR2 [p]
(U')R2U2R'U2R2U'RU'RU'R [p]
RUR'U2R [s]
(U')R'U2R'UR'UR2U'R2UR2 [p]
R'U2RU'R' [s]
RU2RU'RU'R2UR2U'R2 [p]
R'UR'UR' [p] RU'RU'R [p]
R'U'R2U'R'U'R2 [p] RURU2RUR [p]