A lightweight, mobile-first pinball game built with HTML5 Canvas and Matter.js physics. Designed for teens (12-15) with neon arcade visuals, touch controls, and short 1-3 minute play sessions.
Open index.html in any modern browser, or serve with any static file server:
# Python
python3 -m http.server 8080
# Node.js
npx serve .Then open http://localhost:8080 on your phone or desktop browser.
| Action | Mobile | Desktop |
|---|---|---|
| Left flipper | Tap left side of screen | Left Arrow or Z |
| Right flipper | Tap right side of screen | Right Arrow or / |
| Launch ball | Tap LAUNCH button | Space or Up Arrow |
- 5 score bumpers (200-500 points)
- Slingshots and lane targets for bonus points
- Score multiplier system (up to 4x) at milestones
- Procedural sound effects (Web Audio API, no files to download)
- Neon glow visual theme with ball trails and hit animations
- High score saved to localStorage
- 3 balls per game
- Pause on tab switch (saves battery)
- Landscape rotation warning on mobile
- Rendering: HTML5 Canvas 2D with custom neon glow renderer
- Physics: Matter.js v0.20.0 (CDN)
- Audio: Web Audio API (procedural, zero audio files)
- Total size: ~30KB of game code + ~60KB Matter.js (cached from CDN)
- No build step -- plain HTML/CSS/JS