Second release. The headline is a much faster, never-stalling solver and a new Live solving mode, plus a cleaner, more even render. The cube engine and the POST /move / POST /state HTTP contract are unchanged.
Highlights
- Hybrid solver — instant deep solves. The optimal Korf IDA* now runs under a wall-clock budget (~4 s); for the rare near-God's-number states (distance ~17–20) that would exceed it, the solver falls back to a self-contained Kociemba two-phase search that returns a short, near-optimal solution in milliseconds. A solve never stalls anymore.
- Live mode. Toggle Live and the solution list tracks your own moves in real time — each correct move drops off the top, a wrong move re-inserts its undo so the list stays valid instantly, and a debounced background re-solve quietly restores the optimal sequence when you pause.
- Faster optimal search. A multicore IDA* with incremental coordinate updates and a depth-2 frontier + early-bail solves most states optimally in well under a second.
- No runtime
kewbdependency. Facelet parsing and physical-solvability validation are now fully in-house;kewbis kept only as a dev-only test oracle.
Solver
- In-house Kociemba two-phase module (coordinates + pruning tables + search) — self-contained, no external solver dependency.
- Korf + two-phase hybrid
solve: guaranteed-optimal Korf within the budget, near-optimal two-phase fallback past it (CUBR_KORF_BUDGET_MSoverrides the default ~4 s budget). - Multicore IDA* with incremental coordinates and a depth-2 frontier + early-bail for real multi-core scaling.
- In-house facelet → cubie parse + validation;
kewbdropped as a runtime dependency. cubr-corecompiled at full opt-level even in dev builds, socargo run/cargo testsolve at real speed.
UI / rendering
- Live toggle in the Solve panel (see above).
- Camera-following key light — even, view-consistent lighting from any orbit angle.
- 180° turns animate slower (1.4× a quarter turn) so half-turns read clearly.
- Fix: the step list now clears when a Run finishes, so it can't accidentally re-scramble.
Crates
Downloads
Grab the archive for your platform below, unpack it, and run cubr.
macOS (cubr-macos-arm64 / cubr-macos-x64): This build is unsigned. After unpacking, in Terminal run xattr -dr com.apple.quarantine ./cubr once, then ./cubr (or right-click → Open). You'll see a Gatekeeper warning otherwise — this is expected for an unsigned app.
Windows (cubr-windows-x64): SmartScreen may show 'Windows protected your PC' → More info → Run anyway.
Linux (cubr-linux-x64): Needs the runtime libs (libasound2, libudev1) — present on most desktops; sudo apt-get install libasound2 libudev1 if missing.
Full changelog: v0.1.0...v0.2.0