{{ xpNotification }}
Level {{ levelUpDisplayNumber }}
{{ currentSession?.name }} ({{ timerSolves.length }})
{{ session.name }} {{ session.solves.length }} solves
{{ event.icon }} {{ event.name }}
Scramble

{{ currentScramble }}

{{ inspectionDisplayText }}

Tap to start solve

{{ timerIsRunning && hideTimeWhileSolving ? 'Solving...' : formatTimerTime(timerDisplayValue) }}

Hold Space or tap screen until green

Press any key or tap to stop

{{ currentPenalty }}

Enter time as 12.34 or 1:23.45

Statistics

Solves {{ timerSolves.length }}
Worst {{ formatTimerTime(timerWorst) }}
Mean {{ timerMean }}
Ao5 {{ timerAo5 }}
Ao12 {{ timerAo12 }}

Times

{{ timerSolves.length - index }}. ao: {{ timerAo5 }} DNF {{ formatTimerTime(solve.time) }} +2
Scramble: {{ solve.scramble }}

Settings

Dark
Light

Setup

{{ setupScramble }}

{{ formatTime(timerValue) }}

Hold Space or tap to start

Press Space or tap to stop

{{ currentCase?.subset }} {{ currentCase?.name }}

Algorithm

{{ currentCase?.alg }}

Recent Times

{{ formatTime(time.value) }} {{ time.subset }} - {{ time.name }}

Ao5: {{ calculateAverage(5) }}

Ao12: {{ calculateAverage(12) }}

2-Side PLL Recognition

Question {{ twoSidedPll.currentQuestion }} / {{ twoSidedPll.totalQuestions }}
PLL case
{{ twoSidedPll.correct ? 'โœ“ Correct!' : 'โœ— Wrong!' }}
{{ twoSidedPll.name }}

{{ twoSidedPll.alg }}

Quiz Complete!

{{ Math.round((twoSidedPll.correctCount / twoSidedPll.totalQuestions) * 100) }}%

{{ twoSidedPll.correctCount }} out of {{ twoSidedPll.totalQuestions }} correct

Virtual Cube

Use keyboard: R L U D F B + rotations X Y Z (+ Shift for counterclockwise)

Streak Challenge

Current Streak {{ streakCount }}
Best Streak {{ streakBest }}
Last Time {{ formatTime(streakLastTime) }}
Beat This! < {{ formatTime(streakLastTime) }}

{{ streakScramble }}

{{ streakRunning ? formatTime(streakCurrentTime) : (streakFailed ? 'STREAK ENDED!' : (streakLastTime === null ? 'Hold to Start' : formatTime(streakCurrentTime))) }}

Your time: {{ formatTime(streakCurrentTime) }} was slower than {{ formatTime(streakLastTime) }}

Hold spacebar or tap and hold to start the timer.

Each solve must be faster than the previous one!

{{ trainerType.toUpperCase() }} Trainer

Select the algorithms you know, then start training

{{ subset.name }}

{{ getSelectedCount(subset.name) }}/{{ subset.cases.length }}

{{ group.name }}

{{ getGroupSelectedCount(subset.name, group.cases) }}/{{ group.cases.length }}
{{ algCase.name }} {{ algCase.alg }}

Multiplayer

Number of Players

Scramble: {{ multiplayerScramble }}
Player 1
{{ formatTimerTime(players[0].currentTime) }}
Best: {{ getPlayerBest(1) }}
Ao5: {{ getPlayerAo5(1) }}
Ao12: {{ getPlayerAo12(1) }}
{{ players[0].times.length }} solves
Scramble: {{ multiplayerScramble }}
Player 2
{{ formatTimerTime(players[1].currentTime) }}
Best: {{ getPlayerBest(2) }}
Ao5: {{ getPlayerAo5(2) }}
Ao12: {{ getPlayerAo12(2) }}
{{ players[1].times.length }} solves
P{{ player.id }}
{{ formatTimerTime(player.currentTime) }}
B: {{ getPlayerBest(player.id) }} A5: {{ getPlayerAo5(player.id) }}
{{ player.times.length }}