Skip to content

programmism/little-explorer-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ§ͺ Little Explorer Lab

A safe, fullscreen interactive playground for curious toddlers aged 2–4.

Live Demo Deploy License: MIT


Little Explorer Lab preview


What is it?

A toddler-safe fullscreen world where every touch causes a friendly reaction. No goals. No scores. No text. Just cause and effect.

"I touched something β€” and the world responded."

Works on phones, tablets, laptops. Fully offline. Zero ads. Zero links.

β–Ά Open the playground


Features

Feature Description
πŸš— Cars Drive across the road β€” tap to honk, flash, and zoom
⚽ Balls Physics-based bouncing β€” tap to smash in any direction
πŸš€ Rocket Floats peacefully β€” tap for a blazing launch with particle trail
⭐ Stars Drift through the sky β€” tap for a golden sparkle burst
πŸ¦‹ Butterflies Wander freely β€” tap to scatter them away
🎨 Drawing Drag a finger or mouse to paint glowing rainbow trails that fade
⌨️ Keyboard Every key press shows a giant colorful floating letter with sound
πŸŒ… Day/night cycle The world slowly cycles from dawn β†’ noon β†’ dusk β†’ midnight
πŸŽ† Emergent events Random confetti, rainbow bursts, new actors appear spontaneously
πŸ”‡ Synthesized audio All sounds generated via Web Audio API β€” no audio files needed
πŸ”’ Input capture Keyboard shortcuts, context menus, and browser gestures disabled
πŸšͺ Safe exit Hold top-right corner for 3 seconds to exit fullscreen

Design principles

  • Zero failure states β€” nothing can be broken
  • No text in the experience β€” purely visual
  • Touch-first β€” large hit areas, no precision required
  • Calm visuals β€” no flashes, no aggressive camera movement
  • Offline-capable β€” no network required after first load
  • No ads, no links, no tracking

Getting started

git clone https://github.com/programmism/little-explorer-lab.git
cd little-explorer-lab
npm install
npm run dev

Then open http://localhost:5173/little-explorer-lab/ in your browser.

Build for production

npm run build
# output in dist/

Architecture

src/
  main.js            # Entry point, fullscreen request
  GameLoop.js        # requestAnimationFrame loop with dt cap
  InputManager.js    # Mouse, touch, keyboard capture + exit gesture
  AudioManager.js    # Web Audio API synthesized sounds
  ParticleSystem.js  # Burst and trail particle effects
  DrawingLayer.js    # Freehand rainbow drawing with fade
  KeyLabel.js        # Floating letter animation on key press
  Background.js      # Animated day/night sky, clouds, stars, road
  World.js           # Scene manager, emergent events, input routing
  actors/
    Actor.js         # Base class
    Car.js           # Physics + color flash + honk
    Ball.js          # Gravity + squish + color change
    Rocket.js        # Launch trajectory + particle trail
    Star.js          # Float + sparkle burst
    Butterfly.js     # Wander AI + scatter on tap

Tech stack

  • Vanilla JS (ES modules) β€” no framework
  • HTML5 Canvas 2D β€” all rendering
  • Web Audio API β€” synthesized sounds
  • Vite β€” dev server and build
  • GitHub Actions β€” CI and deploy to GitHub Pages

Contributing

New actors are easy to add β€” extend Actor and drop into World._spawn(). Each actor needs: update(dt, w, h, particles), draw(ctx), hitTest(x, y), onTap(x, y, particles, audio).

PRs welcome!


License

MIT Β© programmism

About

πŸ§ͺ Safe fullscreen interactive playground for toddlers 2–4. Touch anything β†’ the world reacts. No ads, no text, fully offline.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors