About this project
WigglePlay is an open-source, browser-based collection of learning mini-games for toddlers aged 2½ and up. Its central design choice is eliminating the keyboard and mouse: children interact through a webcam, touch, microphone or device motion. The catalogue can be browsed by interaction style, age band and interest, and every listed game is playable.
The README documents 16 games. Camera and pose-tracking titles include Air Painting (point to paint, hover to pick colours, fist to stop), Catch the Stars (move a hand to guide a basket), Wave to Pop (touch floating bubbles), Fruit Slice (swish through fruit), Tickle the Cat, Fly High, Bus Driver, Beep Meow Whoosh, Wiggle Mirror, 3D Toy Town and Simon Says Mirror. Touch, microphone and motion titles include Tap the Farm, Animal Call (loudness only, no recording), Alphabet Trail, Path Tracer and Shake the Tree.
A settings drawer for grown-ups is protected by a press-and-hold parent gate. It covers sound and voice, a shared interaction mode (whole body, wave a hand, point a finger or head only), camera quality and tracking responsiveness, session length before a bye-bye screen, and per-game parameters such as speed, size and spawn rate. The app is designed with no wrong answers or losing states; actions produce sound and visual rewards, and scores are shown but do not matter. Camera frames are processed on the device and are not recorded or uploaded. MediaPipe models and the WASM runtime are served locally for offline use.
The tech stack is Vite, React 19 and TypeScript. Hand and pose tracking use MediaPipe Tasks Vision; Three.js provides procedural 3D mascots and props generated from sticker art with the img2threejs skill. Game rules are kept in pure logic.ts modules with tests, while React components handle canvas rendering and audio. The README also describes Electron desktop shells for Windows and macOS, an Expo mobile shell for Android and iOS, in-app offline update bundles, GitHub Actions deployment to GitHub Pages, and an MIT license.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.