The algorithm library#

Algorithms in the main navigation is the library: every case the trainer knows about, what you know about it, and every algorithm that solves it.

Phase Cases What a case is
F2L 41 A corner/edge pair in a known relative position, to be inserted into a slot
OLL 57 A last-layer orientation pattern, to be made all-yellow
PLL 21 A last-layer permutation, to be solved

The four slot angles of an F2L case are treated as variations of the same case rather than as four separate cases, which is why the count is 41 and not 164.

The phase list#

Each phase has a list page (/library/f2l, /library/oll, /library/pll). Every row shows:

  • a thumbnail of the starting position, drawn as an SVG from the case's sticker mask — no image files, so it scales cleanly and works offline;
  • the case name and number (OLL 21 — Double Cross);
  • the group it belongs to (OLL "T-Shapes", PLL "Adjacent corner swap", …);
  • your statusNot assessed, Learning, Know it or Solid;
  • your score meter (0–100), or the Not assessed pill when there is none;
  • your best time for the case, once you have timed it;
  • the star toggle.

Sort order#

The default sort is the one that matters: unassessed first, then worst score first. This is deliberate — a case you have never looked at is worth more practice than a case you are merely slow at, because you cannot improve what you have not learned.

You can switch to sorting by case number (the sheet order, useful when you are working through a group), by name, or by best time.

Filtering#

  • Group — narrow to a single group, e.g. only the OLL dot cases.
  • Status — e.g. only Not assessed, or only Learning.
  • Starred only — your todo list.
  • Search — matches the case name, the case number and the algorithm text, so typing sune or R U R' U R U2 R' both find OLL 27.

The case page#

Opening a case gives you the full view:

  • a large diagram of the starting position;
  • every algorithm for the case, with the primary one highlighted. Click any algorithm to copy it to the clipboard;
  • the move count and, where the source sheet gave one, the probability of meeting the case (for example 1/108 for a specific OLL);
  • a 3D animation of the solution with a speed control and a scrubbable timeline — see the viewer;
  • quick return: the inverse of the algorithm, so you can undo the case on a physical cube and get back to where you started without re-scrambling;
  • a scramble generated for this case, ready to paste into csTimer — see Scrambling;
  • the self-assessment control, so you can re-rate without going back to the wizard;
  • star and focus toggles;
  • any media attached to the case (images, or links to finger-trick videos).

Multiple algorithms per case

A case usually has more than one algorithm — a common one and one or two alternatives that suit different grips or set up a better next case. The primary one is what the trainer shows first and what drills assume, but you can time yourself on any of them; attempts record which algorithm you used.

Stars and the todo list#

The star (☆) is a per-profile flag meaning "I want to practise this more than its score suggests".

  • Star from the list, from the case page, or from inside a drill.
  • The todo list is simply the library filtered to starred cases.
  • Starred cases get a visibility boost when drill sessions are generated — they are more likely to be picked than an equally-scored unstarred case.
  • Stars never change the score itself. A starred case you cannot solve still reads as a case you cannot solve.

Focus#

Focus is the heavier version of a star. Where a star nudges the selection, a focus replaces it: while you have focus items set, generated drill sessions draw from the focused cases, groups or phases only.

Use focus when you are deliberately learning something ("all the OLL dot cases this week") and stars when you just want the app to keep an eye on something.

Clear focus from the drills page when you are done — the app reminds you that a focus is active every time it generates a session, because a forgotten focus quietly stops the weakest-case logic from doing its job.

Where the algorithms come from#

The library is imported from app/data/algorithms.json, which is generated from the F2L / OLL / PLL sheets by Feliks Zemdegs and Andy Klise shipped in pdf/. Every case carries its source string so you can see which sheet an algorithm came from.

Each case also stores setup_moves: the sequence that takes a solved cube into that case. This is validated at import time — applying setup_moves and then the primary algorithm must return the cube to the phase's target state. A case that fails that check is a bug, not an acceptable gap. See Contributing for how to add or correct a case.

Source: docs/user/library.md