Watch the digits. Type them back in order.
One teammate is open. Click them before the clock runs out.
Here are the keys.
A live guess at whether you'll read to the end.
Most people don't scroll far: Nielsen Norman Group found about 74% of viewing time stays in the first two screens. So I start you at 20%.
How far you've come, how long you actually read (slow scroll, pauses), whether you skim (fast flicks), and whether you open things. Each nudges a logistic model, then the line eases toward it.
z = logit(0.20) + 3.4 · progress // chapters seen, 0..1 + 0.45 · min(opened, 4) // panels, games, the lab + 1.2 · min(reading / 60s, 1) - 1.0 · min(skimming / 6s, 1) p = 1 / (1 + e^-z) // the line's length
Nothing is stored or sent anywhere. It lives in this tab and forgets you when you leave.
Drag to look around · keys U R F D L B, shift to reverse
It's solved. Go on, mess it up.
It's solved. Every turn from here pushes it away.
There are 43,252,003,274,489,856,000 ways a cube can sit, and none needs more than 20 moves (Rokicki, Kociemba, Davidson and Dethridge proved it in 2010). Most sit at 18.
Up to 6 moves out, the distance is exact: I keep a table of every cube within 4 moves of solved and meet it halfway. Further out, Kociemba's two-phase algorithm finds a solution and I report its length, which is an upper bound. That's why far cubes say "about".
Every position has 18 possible turns. Up to 4 moves out, I check all 18 exactly: closer, level, or further. That's the strip of squares, and you can click it. Across all 46,740 cubes within 4 moves of solved, the average is 1.1 closer, 2.2 level and 14.7 further.
You're modelled as skill plus chance: with probability s you find a closer turn, otherwise you turn at random. s is learned from your own turns, starting from a Beta(2, 2) prior. A Markov chain over distance then gives the chance you're home within 20 turns, averaged over every value s could take.
s ~ Beta(2 + helped, 2 + didn't)
step(d) = s·closer + (1-s)·[ 1.1/18 closer
+ 2.2/18 level + 14.7/18 further ]
P(home within 20) = E_s[ P(chain hits 0 by step 20) ]
random turner = the same chain with s = 0
Far out (17+ moves) the turn mix is extrapolated from the known number of cubes at each distance.
T = everyCubeWithin(4) // 46,741 states dist(c): if c in T return T[c] for m in MOVES if c·m in T return 1 + T[c·m] for m,n in MOVES² if c·m·n in T return 2 + T[c·m·n] return kociemba(c).length // bound past 6
The solver runs in a background thread in your browser, so the page never freezes. Library: cube.js (MIT), after Kociemba.
Your visit so far
Kept in this tab only. Nothing is sent.