A cute, mobile-first 3D web puzzle game. Drag & rotate translucent glowing crystal pieces so their glowing line-art fragments align (viewed head-on) into a hidden picture — plus alternate modes: bend a light beam to a target, and assemble small cubelets into a 3D crystal cube. One daily puzzle, escalating difficulty.
Built with React + Vite + TypeScript + React Three Fiber (three.js) + Zustand.
Live: https://hoainho.github.io/nimbi/
npm install
npm run dev # local dev server
npm run build # typecheck + production build -> dist/
npm run preview # preview the production build
npm test # unit tests (vitest)- Ghép hình (align): drag + rotate translucent creatures until fragments form the picture.
- Tia sáng (beam): rotate crystal prisms to route a light beam to the target ring.
- Lắp ghép 3D (assemble): drag color-matched cubelets into a tilted cube's slots.
- Human celebration/consolation lines use the browser's Web Speech API (a real voice).
- Optional real cat recordings: drop files into
public/sounds/(see the README there); a soft synthesized fallback plays when they're absent.
Deployed automatically to GitHub Pages via .github/workflows/deploy.yml on every push to main.