Small TypeScript Rubik's Cube library with:
- cube state model (
Cube) - algorithm parsing/inversion helpers
- 3BLD edge/corner path helpers
- built-in letter schemes (
SPEFFZ,SPEFCZ,CHS) - it's based on https://github.com/ldez/cubejs but rewritten to TypeScript with custom logic in (3x3 blind solver mainly) and custom additional unit tests
pnpm add @memodungeon/cube
# or npm i @memodungeon/cubeimport { Cube } from "@memodungeon/cube";
const cube = new Cube();
cube.move("R U R' U'"); // sexy move
console.log(cube.toString());
console.log(cube.isSolved());import { Cube, SPEFCZ } from "@memodungeon/cube";
const cube = new Cube().move("D2 L' D' B2 U2 B2 L' R' D2 L' U2 L' B2 R2 B U R' F2 L' B' F");
const path = cube.to3bldEdgePath({
buffer: "U",
letterScheme: SPEFCZ,
targetFlip: [3, 1], // treat edge 3 as 1 for dealing with parity
});
console.log(path);CubeCubeStatecomputeLetterSchemeMapflipTargetEdgeLetterresolveTargetFlipEdgeIdsSPEFFZ,SPEFCZ,CHS
pnpm install
pnpm lint
pnpm test
pnpm buildMIT