Published
jev-rubiks asks Jev when to speak, after a test where picking moves did nothing
maxlibin/jev-rubiks is an MIT browser cube. Kociemba solves it in code, in about 20 ms. Jev only decides whether the coach should talk. The README says a removed experiment let Jev pick among 18 turns, forty times, and the scramble distance stayed at 22, the same as a random walk that went from 22 to 21.
maxli posted maxlibin/jev-rubiks on September 22. It is an MIT page, one commit on the tree we opened, that draws a cube in the browser. You drag stickers. Two solvers in the repo can finish the cube without Jev. Kociemba’s two-phase search, through cubejs, is described as about 20 ms and at most 22 moves. A beginner method walks the layers and names each step.
Jev is the coach. After a move you make by hand, code writes down the stage, how many pieces of that stage are placed, whether the turn undid work you had already earned, how long it has been since a piece landed, and how long the coach has been quiet. Three questions go out: whether to speak, what kind of message (celebrate_milestone, warn_broke_progress, help_stuck, explain_stage_goal, or nothing), and whether to offer a Show me button. Thresholds in code have the last word, including a streak before “stuck” help, because a beginner algorithm can run about eight moves that look idle in the middle. The sentences on screen are written ahead of time and filled with those facts and with the real next algorithm. The README’s caption for the screenshot is two white edges placed in silence, then a careless D, with the panel showing speak 0.83 and warn_broke_progress (0.94).
The README also records a test they took out. Code named the six faces by color and asked Jev for the best of 18 turns, forty times in a row. Kociemba distance went from 22 to 22. A random walk in the same note went from 22 to 21. The author writes that choosing a helpful turn means simulating the cube, which is a computation, and that this is why the coach exists instead. We did not replay the forty solves.
The page never calls api.typesafe.ai itself. The README says that origin is rejected by the API’s CORS policy, and that the key should not ship to the browser. The Vite dev server proxies /api/typesafe and adds TYPESAFE_API_KEY. The client is pinned to jev-1.13.0. npm run check is described as 85 unit tests, 200 Kociemba solves, and 600 beginner scrambles. npm run test:live is nine coach situations against the real model. We did not run them. Node 20 or newer. TypeSafe’s Master Customer Agreement section 2.3(f) forbids customers from publishing benchmarks of the Services.
Tetris and JevPilot ask Jev to rank moves the program already knows how to apply. On this cube, forty of those rankings left the Kociemba distance at 22.
This site's reading
Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.
Verify
Post is @maxlibin, September 22, 2026, 06:49 UTC. Repo maxlibin/jev-rubiks, MIT, one commit on the tree we read. Node 20 or newer. The browser does not call api.typesafe.ai. A Vite proxy at /api/typesafe injects TYPESAFE_API_KEY, because the README says the API's CORS policy rejects browser origins. The client pins jev-1.13.0. Solvers: Kociemba two-phase through cubejs, about 20 ms, at most 22 moves; a beginner layer-by-layer solver in the repo. After each hand move, code computes stage, pieces placed, whether the move undid earned work, moves since a piece was placed, time since progress, and time since the coach spoke. Three questions: should_speak, message_kind (celebrate_milestone, warn_broke_progress, help_stuck, explain_stage_goal, nothing), offer_demo. Code applies thresholds, requires a streak before stuck help because beginner algorithms run up to about eight moves that look like no progress in the middle, and fills pre-written messages. The README's screenshot caption: two white edges placed, then a D, and the panel shows speak 0.83 and warn_broke_progress 0.94. The removed experiment asked Jev for the best of 18 face turns, forty times. Kociemba distance went from 22 to 22. A random walk in the same note went from 22 to 21. The README says judging which turn helps requires simulating the cube. npm run check is described as typecheck, lint, and 85 unit tests, including 200 Kociemba solves and 600 beginner scrambles. npm run test:live is 9 coach situations against the real model. We did not run those commands. TypeSafe's Master Customer Agreement section 2.3(f) forbids publishing benchmarks of the Services. The distance figures are reported as published.
Compare
Tetris asks Jev to rank landings the engine already enumerated, and the piece only moves to a legal cell. JevPilot ranks sampled steering paths. This cube tried the same shape, 18 legal turns, and the README says the distance did not fall. The coach that shipped is closer to a confidence gate: code solves and teaches, and Jev decides whether to interrupt. The macOS Loop story keeps perception and clicks in local code for the same reason.
Terms
- coach facts
- In jev-rubiks, the plain-English description code sends after a hand move: beginner stage, pieces placed, whether the move undid progress, and how long the coach has been quiet. Jev answers whether to speak. It does not return the next algorithm.