FMC Domino Reduction
A domino reduction guide for FMC
Reference: DR guide by Alexandros Fokianos & Tommaso Raposio
Prereqs
You should know what does FMC mean, and familiar with the standard notations for Rubik's cube. Before learning domino reduction, you are encouraged to learn more traditional FMC approach first. Reference: The Bible for FMC
Overview
The vanilla domino reduction method for FMC is a series of "group reduction", meaning at each stage, you will apply some moves so the cube can be solved with only a subset of moves. You should be color neutral for the FMC in general, and no exception for domino reduction.
Below are the stages in a vanilla FMC solution, we will find a holistic solution which minimizes the total move
count:
- Step 1 (Edge Orientation): Apply moves so all edges are oriented, so the cube can be solved with only .
- Step 2 (Domino Reduction): Apply moves so all corners are oriented, and all E-edges are on the E-layer, so
the cube can be solved with only . If step 1 already oriented all
corners or step 1 already put all E-edges on E-layer, this step is called partial domino reduction.
- Step 3 (Finish): Solve the cube.
In this tutorial, we will focus on the vanilla method. You may refer to the document at the beginning of this page for more advanced tricks.
Edge Orientation
The standard Edge Orientation is very intuitive. For FMC, you should try multiple alternative EO solves, e.g. R'
F might lead to a better case for next 2 stages, compared to R' F'.
If feasible, try to find a sequence that solves a "good" EO, with most corners oriented and some E-edges already
in the E-layer.
Also, make sure to check all cube orientations: you may aim F/B EO <u, d, l, r, f2, b2> or L/R EO
or U/D EO <u2, d2, l, r, f, b>. For each EO, you may make
a z rotation for the DR.
For example, F/B EO can be reduced to <u, d, l2, r2, f2, b2> without a z rotation,
but you may also make a z rotation, and reduce to <u2, d2, l, r, f2, b2>.
For example, use the scramble R' U' F D2 R2 B2 D2 R2 B' F' L2 U' F2 U2 L D U' F' L' D' R2 U R' U' F U' F.
Notice this cube is already in F/B EO. Currently, there are only two corners oriented (UBR and DLB), and two
E-edges in E-layer (FR and BR).
However, you may make a z rotation, the cube is still in EO. But if you target <u2, d2, l, r, f2,
b2> domino reduction, there are four corners oriented and three E-edges in E-layer. This is more likely
to lead to a shorter solution in step 2.
Therefore, the strategy in step 1 is to try all 6 different EO.
Domino Reduction
The idea for Domino Reduction is to get familiar with some "triggers", and then setup your case into the trigger
(no reverse needed for this context).
One example trigger is R U R' which solves the case below.
Another trigger is R U2 R' which solves the case below.
R is also a common trigger.
You may use your second cube to setup to a trigger case, and try to setup the first cube into that trigger case.
NISS could be applied here to increase the chance of finding a good solution. Learn NISS from The Bible for FMC.
Partial Domino Reduction
Technically PDR refers to any of the three scenarios (although the overview only mentioned first 2 for
simplicity).
- CO and EO are done, E-layer does not only have E-edges.
- E-layer and EO are done, CO is not done.
- CO and E-layer are done, EO is not done.
For CO and EO done, may insert an edge commutator (e.g. U' M2 U or R' E2 R) when there are 1 or 2 bad edges. If
there are 3 or 4 bad edges, it's not a very good case, consider switching previous moves.
For E-layer and EO done, you may use sune or classic 8movers corner commutators.
For CO and E-layer done, you may use Roux-style algorithms (e.g. M' U M).
Finish
- Method 1: Have a skeleton close to solved state, then use insertions. Edge insertions very likely can cancel many moves.
- Method 2: Solve corners while try to influence more edges. Then use edge insertions.
- Method 3: Build blocks intuitively.
- Method 4: This can be used rarely, but reduce into Half Turn Reduction (HTR) <u2, d2, f2, b2, l2, r2>, and then it's very easy to solve.
HTR Recognition
HTR (Half Turn Reduction) means reaching a state that can be solved using only half turns.
Once DR is reached, the cube is at most 5 quarter turns (QTs) away from HTR. This makes HTR recognition a small, structured classification problem.
What does “QT distance” mean?
Once we are in DR, we are allowed to use the same DR-preserving moves while searching for HTR. In particular, half turns are free for the purpose of counting QT distance.
A QT (quarter turn) is a 90° turn such as R, R',
U, or U'. A half turn such as R2 does not count.
More importantly, when stepping from DR toward HTR, the QTs are applied on a single axis at a time, with half turns used to move between the axes. So a typical DR → HTR solution has the structure:
HT + QT + HT + QT + HT + QT + ...
For example, a route such as
R2 U' F2 R U2 F2 L' D2
has only 3 QTs: U', R, and L'.
The half turns R2, F2, U2, and D2
do not contribute to the QT count.
This is why QT distance is such a useful indicator in DR → HTR search: the number of QTs gives a good estimate of how much non-HT work is still needed, while the half turns take care of the necessary setup between them.
For example:
| DR → HTR route | QT distance |
|---|---|
R2 U' F2 |
1 QT |
R2 U' F2 R D2 |
2 QTs |
R2 U' F2 R D2 L' |
3 QTs |
R2 U' F2 R D2 L' B |
4 QTs |
Therefore, 4a3 means that the DR position is a 4a position and that the shortest DR-preserving route to HTR requires 3 QTs, with half turns used as needed between those QTs.
1. What are we recognizing?
Every DR position belongs to one of three corner categories:
- 0c: 0 or 8 misoriented corners
- 2c: 2 or 6 misoriented corners
- 4c: 4 misoriented corners
A corner is misoriented if it cannot be placed correctly using only half turns.
The number after the category is the minimum number of quarter turns required to reach HTR. For example, 2c4 means a 2c position that is 4 QTs from HTR.
2. The complete classification
| Corner type | Possible cases | QT distance |
|---|---|---|
| 0c | 0c0, 0c3, 0c4 | 0, 3, 4 |
| 2c | 2c3, 2c4, 2c5 | 3, 4, 5 |
| 4a | 4a1, 4a2, 4a3, 4a4 | 1, 2, 3, 4 |
| 4b | 4b2, 4b3, 4b4, 4b5 | 2, 3, 4, 5 |
Notice two useful facts:
- 4a1 exists, but 4b1 does not.
- 4b can be as far as 5 QTs from HTR.
3. Recognition: 0c
There are only three possibilities:
| Case | Recognition |
|---|---|
| 0c0 | Already HTR. |
| 0c3 / 0c4 | Use parity / blind tracing to distinguish them. |
If the position is not already HTR, there is no need to guess between 0c3 and 0c4. A quick parity trace tells you which one it is.
4. Recognition: 2c
There are three possibilities: 2c3, 2c4, 2c5.
| Case | How to recognize |
|---|---|
| 2c4 | Identify it using blind tracing. |
| 2c3 / 2c5 | Mentally swap the two misoriented corners. |
The mental-swap test is particularly useful:
- If swapping the two misoriented corners produces fake HTR, the case is 2c3.
- If it produces real HTR, the case is 2c5.
5. Recognition: 4c
4c has the most cases, but it becomes much easier if you recognize it in stages.
Do not try to memorize eight independent cases. Instead, use:
- Shape
- Parity
- Inverse shape
Step 1 — Determine the shape
First determine whether the position is 4a or 4b.
- 4a: the four misoriented corners can be put on one side using only half turns.
- 4b: they cannot.
Step 2 — Use parity
Parity narrows the possible QT distances. The recognition tree is:
| Shape | Parity | Remaining possibilities |
|---|---|---|
| 4a | even | 4a1 / 4a3 |
| 4a | odd | 4a2 / 4a4 |
| 4b | even | 4b2 / 4b4 |
| 4b | odd | 4b3 / 4b5 |
This is already enough to reduce eight cases to just two candidates.
Step 3 — Check the inverse shape
The remaining ambiguity can be resolved by looking at the shape of the inverse position. The important inverse relationships are:
| Current case | Inverse case |
|---|---|
| 4a3 | 4b3 |
| 4b3 | 4a3 |
| 4a4 | 4b4 |
| 4b4 | 4a4 |
This gives a very practical recognition rule:
- Recognize 4a or 4b.
- Use parity to reduce it to two possibilities.
- Check the inverse shape to identify the exact case.
For example, suppose you recognize a 4a position with the parity corresponding to 4a2 / 4a4. If the inverse has the 4b shape, the case is 4a4. If the inverse has the 4a shape, it is 4a2.
NISS makes this especially convenient: switch to the inverse scramble, recognize the shape, then switch back.
6. The QT-counting hack
There is also a simpler way to approach HTR recognition when the position is visually obvious. Instead of immediately assigning a case name, ask:
“How many quarter turns do I need to reach HTR?”
Because every DR position is at most 5 QTs from HTR, this is a very small search. If you can quickly see a short sequence that reaches HTR, simply count the QTs. You do not necessarily need to identify the formal case first.
For example, recognizing that a position is 4 QTs away may be enough to guide your search, even before you care whether you would formally call it 4a4 or 4b4.
As you become faster, the formal classification and the QT count naturally become the same recognition process.
HTR Stepping: Reducing the QT Count
Once you recognize the HTR subset, the next question is:
“What should I do to get to a subset with fewer QTs?”
The important idea is that you usually do not need to search for HTR directly. Instead, move through the HTR subsets one step at a time, reducing the QT distance until you reach 0c0.
The basic transition map
| Current subset | QT | Target subset | New QT |
|---|---|---|---|
| 0c4 | 4 | 4a3 | 3 |
| 0c3 | 3 | 4a2 | 2 |
| 4a4 | 4 | 4a3 | 3 |
| 4a3 | 3 | 4b2 | 2 |
| 4a2 | 2 | 4a1 | 1 |
| 4a1 | 1 | 0c0 | 0 |
| 4b5 | 5 | 2c4 | 4 |
| 4b4 | 4 | 4a3 | 3 |
| 4b3 | 3 | 4a2 | 2 |
| 4b2 | 2 | 4a1 | 1 |
| 2c5 | 5 | 2c4 | 4 |
| 2c3 | 3 | 4b2 | 2 |
| 2c4 | 4 | 2c3 | 3 |
The table is not meant to be memorized as a list of algorithms. The useful part is understanding how to arrange the bad corners so that a QT moves you into the desired subset.
1. 0c → 4a
For a 0c position, use a U or U' move to change the corner structure into 4a. This always gives you a useful next step.
The important distinction is which 4a subset you create:
- 0c3 → 4a2
- 0c4 → 4a3
The QT count therefore drops by one.
0c4 → 4a3 → 4b2 → 4a1 → 0c0
For 0c3, be careful: not every way of making a 4a state gives the desired 4a2. You want the 4a state that is actually 2 QTs from HTR, rather than accidentally creating 4a4.
2. 4a → 0c
To move from 4a toward HTR, try to put all four bad corners on the U or D face.
This produces a 0c state. For the useful transition:
4a1 → 0c0
This is the final step: once the four bad corners can be arranged this way with only one QT, the corner state becomes HTR.
3. 4a → 4a
Sometimes the best next step keeps the position in 4a while reducing the QT count. The trick is to arrange the four bad corners on the two diagonals:
- FL + BR, or
- FR + BL.
Then a U or U' changes which U-layer corners are bad while
keeping the position in the 4a family.
This gives the useful transition:
4a2 → 4a1
and eventually:
4a1 → 0c0.
4. 4a → 4b
This is the important transition for 4a3.
Arrange the four bad corners so that there are:
- 2 bad corners on U
- 2 bad corners on D
Then a suitable U or U' step changes the state from 4a to 4b.
For the correct setup:
4a3 → 4b2
This reduces the QT distance from 3 to 2. From there:
4b2 → 4a1 → 0c0.
5. 4b → 4a
The reverse transition uses the same basic idea: put 2 bad corners on U and 2 on D.
For the useful 4b subsets:
- 4b2 → 4a1
- 4b3 → 4a2
- 4b4 → 4a3
Each transition reduces the QT count by one or more.
The particularly important one is:
4b2 → 4a1 → 0c0
This is why 4b2 is such a useful stepping point.
6. 4b → 2c
For a 4b position, another useful transition is to split the bad corners 1 on one of U/D and 3 on the other.
This produces a 2c state. The main transition is:
4b5 → 2c4
From there, the goal is to turn 2c4 into 2c3 rather than 2c5.
So the useful path is:
4b5 → 2c4 → 2c3 → 4b2 → 4a1 → 0c0.
7. 2c → 4b
For a 2c position, you can move toward 4b by arranging the two bad corners so that there is one bad corner on U and one on D.
The useful transition is:
2c3 → 4b2
This is a very efficient transition because it drops the QT distance from 3 to 2.
Then:
4b2 → 4a1 → 0c0.
8. 2c → 2c
This is the special case. For 2c4, the goal is to stay in 2c but turn it into 2c3.
First put the two bad corners on the same U or D face, then apply the appropriate
U or U'.
You must choose the direction that produces:
2c4 → 2c3
rather than 2c5.
The distinction can be checked using the same recognition method described earlier: after the step, re-recognize the 2c state.
9. The whole downhill map
Once you understand the transitions, the entire HTR process becomes much easier to visualize:
0c3 → 4a2 → 4a1 → 0c0
4a4 → 4a3 → 4b2 → 4a1 → 0c0
4b4 → 4a3 → 4b2 → 4a1 → 0c0
4b3 → 4a2 → 4a1 → 0c0
4b5 → 2c4 → 2c3 → 4b2 → 4a1 → 0c0
2c5 → 2c4 → 2c3 → 4b2 → 4a1 → 0c0
These are the downhill routes, not necessarily the exact move sequences. At each stage, use half turns to set up the bad-corner arrangement, then use the appropriate quarter turn to make the transition.
10. What should I actually remember?
You do not need to memorize every transition as a separate algorithm. Remember the structural rules:
| Transition | How to set it up |
|---|---|
| 0c → 4a | Use U/U' to enter a useful 4a state. |
| 4a → 0c | Put all 4 bad corners on U or D. |
| 4a → 4a | Arrange bad corners on opposite diagonals. |
| 4a → 4b | Split bad corners 2 + 2 between U and D. |
| 4b → 4a | Split bad corners 2 + 2 between U and D. |
| 4b → 2c | Split bad corners 1 + 3 between U and D. |
| 2c → 4b | Put 1 bad corner on U and 1 on D. |
| 2c → 2c | Put both bad corners on the same U/D face. |
The most important mindset is: recognize the current subset, identify its downhill neighbor, use half turns to set up that transition, then make the QT.
After the QT, recognize again. You should now be in a subset with a smaller QT number. Repeat until you reach 0c0.
HTR Downhill Paths
Once you recognize your current subset, you can use the diagram below to decide where to step next. Every arrow points toward a state with a smaller QT distance.
Remember that the arrow represents a QT step. Half turns are used to set up the position between QTs, but they do not increase the QT count.
5 QT"] --> B["2c4
4 QT"] B --> C["2c3
3 QT"] C --> D["4b2
2 QT"] D --> E["4a1
1 QT"] E --> F["0c0
HTR"] G["4b5
5 QT"] --> B H["0c4
4 QT"] --> I["4a3
3 QT"] I --> D J["4a4
4 QT"] --> I K["4b4
4 QT"] --> I L["0c3
3 QT"] --> M["4a2
2 QT"] M --> E N["4b3
3 QT"] --> M ```
The most important paths to remember are:
2c5 → 2c4 → 2c3 → 4b2 → 4a1 → HTR4b5 → 2c4 → 2c3 → 4b2 → 4a1 → HTR0c4 → 4a3 → 4b2 → 4a1 → HTR4a4 → 4a3 → 4b2 → 4a1 → HTR4b4 → 4a3 → 4b2 → 4a1 → HTR0c3 → 4a2 → 4a1 → HTR4b3 → 4a2 → 4a1 → HTR
Recognize your current case → find it in the diagram → follow the arrow → use half turns to set up the indicated QT → make the QT → recognize again.
Why the QT count is useful
The diagram also explains why QT distance is such a useful search indicator. A DR → HTR solution can be thought of as:
HT + QT + HT + QT + HT + QT + ...
The half turns handle the setup between the important quarter turns. Therefore, reducing the QT count generally means reducing the number of non-half-turn steps that remain before HTR.
For example, if you recognize 4b5, you do not need to search randomly for HTR. The diagram tells you to first target 2c4. After that, target 2c3, then 4b2, then 4a1, and finally HTR.
How to Solve HTR
To solve 0c0,