Play it now → https://iowa69.github.io/keylab/
A safe, fullscreen keyboard-smashing play lab for babies and toddlers (~1–5) that actually teaches. Made with ❤️ by Giovanni Lorenzin for his son Gabriel (2026).
| World | What happens | |
|---|---|---|
| 🎆 | Fireworks | Every key bursts color and creatures; every press plays a musical note |
| 🌸 | Letter Garden | Letters grow like flowers, spoken with a word and picture — in your language and keyboard layout |
| 🚀 | Number Space | Press 5 → five rockets launch, counted aloud |
| 🫀 | Body Lab | A friendly buddy: the heart beats, the lungs breathe, the bones glow |
| ⚽ | Physics Playground | Real gravity! Wind, super-bounce, anti-gravity and magnet experiments |
| ⚙️ | Machine Works | Build a silly machine gear by gear — then the rocket launches |
| 🐝 | Spelling Bee | "Press B… press E… press E… BEE! 🐝" — first words, letter by letter |
- Safe: keys are trapped, worlds only switch by mouse/touch, settings sit behind a grown-ups-only gate (hold a corner 3s + a little math).
- Private: no ads, no accounts, no cookies, no tracking — zero data leaves the device. Works offline after the first visit (PWA).
- Gentle: volume limiter for little ears, calm mode, no flashing, and an optional break timer that winds down softly instead of cutting off.
- Smart: 8 languages (English, Español, Deutsch, Français, Italiano, 中文, 日本語, Русский), spoken narration, real physics, real anatomy.
- Hand Magic 🖐️: optional webcam mode — wave at the camera and your hands become sparkling cursors (all processing stays on the device; pinch to press!).
TypeScript · PixiJS 8 (WebGL) · matter-js · Web Audio (all sound synthesized, including the generative background music) · Web Speech · MediaPipe Hands (vendored, on-device) · Vite · PWA. 134 unit tests.
npm install
npm run dev # local dev server
npm test # unit tests
npm run build # production build in dist/Deploys automatically to GitHub Pages on every push to main.
© 2026 Giovanni Lorenzin. All rights reserved — see LICENSE.