mirror of
https://github.com/tiennm99/rubik.git
synced 2026-05-13 22:58:32 +00:00
main
Rubik's 3x3 — Web Simulator
Interactive 3D Rubik's cube in the browser. Three.js rendering, drag-to-rotate face gestures, keyboard notation, scramble + timer + undo.
Live: https://tiennm99.github.io/rubik/
Stack
- Three.js (WebGL rendering)
- Svelte 5 with runes (UI shell)
- Tween.js (move animation)
- Vite (build)
Dev
pnpm install
pnpm dev # http://localhost:8080
pnpm dev:codeserver # behind code-server proxy (set CODESERVER_HOST in .env.local)
pnpm build # → ../dist
Controls
| Input | Action |
|---|---|
| Drag a sticker | Rotate that face |
| Drag empty space | Orbit camera |
R L U D F B M E S |
Quarter-turn moves |
| Shift + letter | Inverse (prime) |
x y z |
Cube rotations |
| Space | Scramble |
Z |
Undo |
| Esc | Reset |
Project Layout
src/
main.js
app.css
views/ Svelte components (UI)
lib/
core/ Pure JS — cube state, moves, scramble, parser
render/ Three.js scene + cubie meshes + animation
controls/ Pointer gesture + keyboard
plans/ Implementation plans + research reports
docs/ Project documentation
vite/ Per-environment Vite configs
License
Apache-2.0
Description
Interactive 3x3 Rubik's cube simulator in the browser — drag-to-rotate faces, scramble, timer, undo. Three.js + Svelte 5 + Vite.
Languages
JavaScript
79.2%
Svelte
19.5%
CSS
0.7%
HTML
0.6%