A 3×3×3 cube has 8 corners and 12 edges. Centres are fixed (they define the colour scheme). The full state is captured by four arrays:
These are the standard coordinates Kociemba chose in the 1990s for his two-phase solver [7]. All of cube algebra is built on this 4-tuple: each generator is a fixed "permute cp + add offsets to co/ep/eo" combination.
The 3×3×3 unfolded: 54 stickers but only 26 cubies (8 corners × 3 stickers each, 12 edges × 2, 6 centres × 1). Centres are immobile, so the state needs only describe the 8 + 12 = 20 movable cubies.
The cubie indexing used throughout (following Kociemba):
Each corner at a fixed position has 3 possible orientations (its "U/D-coloured sticker" can face one of three axes). Each edge has 2 orientations ("good" or "flipped" relative to the F/B-axis convention). So:
Each face turn corresponds to a (permutation, orientation offset) pair. For example, R:
Similarly: F flips the EO of 4 edges (UF, DF, FR, FL each +1 mod 2). U/D turns change neither CO nor EO — only positions. This clear axis-specific structure makes both state compression and solver search highly efficient:
Compare: naively storing colours for all 54 stickers takes 162 bits ≈ 21 bytes, with no compression. The structured encoding halves memory and intrinsically excludes illegal states.
A cube state is the 4-tuple (cp, co, ep, eo). Type any alg, watch the four arrays mutate.
Treat cp / co / ep / eo as four independent coordinates. Their raw cardinalities:
| Coord | Codomain | Size |
|---|---|---|
| 8! = 40,320 | ||
| 3⁸ = 6,561 | ||
| 12! = 479,001,600 | ||
| 2¹² = 4,096 | ||
| product (free space F) | ||
| cube group G | ||
So "position + orientation" carries bits of information, but G only sits in of those. The missing bits are precisely the three invariants of §5 (ℤ/3 × ℤ/2 × ℤ/2).
Embed state vectors into (20 position indices + 8 mod-3 + 12 mod-2) and ask "distance to origin." Two natural norms:
Crucial: these norms are not equivalent to the HTM metric (§2.2). They are weak lower bounds on d_S(e, g), used as heuristics by §22's solvers. The true d_S(e, g) is the Cayley-graph distance — no closed form; computed only by Korf IDA* or Kociemba two-phase.