Neishauben is an in-browser Rubik's cube simulator with an included LBL (Beginners Method) solver.
Main functionality (operations on Rubik's Cube and the solver itself) is implemented in C (see here) and compiled with Emscripten and the cube simulator is written in JavaScript using Three.js for 3D graphics.
Build process requires Docker in order to compile C code to WebAssembly. The frontend is built with Vite and uses pnpm as the package manager.
Install dependencies:
pnpm installRun the development build locally
pnpm wasm:dev
pnpm devThe app will launch at http://localhost:5173/neishauben/
Tests run with Vitest (make sure C code is compiled first with pnpm wasm:dev)
pnpm testIn production build, optimization lookup tables are pre-generated during the build process and baked into the resulting WebAssembly to save on startup time (at the expense of asset size). For developing a production build:
pnpm wasm:production
pnpm devpnpm buildThe built site can be previewed locally with
pnpm preview