You don't move a character — you leave light on.
A novel, endless HTML5 light-painting game. Hold the shutter open and steer glowing
lights to burn shimmering trails onto a night sky.
Most "photography games" are about pointing a camera and framing a shot. AFTERGLOW is different: the light you leave on is the gameplay. Hold your finger down to open the shutter, and every glowing pen you steer paints a permanent, luminous trail onto a long-exposure night photo. It's a calm, beautiful score-chase that's easy to learn and deep to master — and it teaches you to draw better as you play.
The core verb — painting with persistent long-exposure light — is what makes AFTERGLOW genuinely new. It was designed from scratch, checking existing games at every step to keep the idea original.
- Hold & drag anywhere to open the shutter and paint with light.
- Fill the faint, pulsing guide shape. A golden Trace Coach shows you the stroke order and direction so you learn good technique.
- Tap Develop Photo to score your exposure (coverage vs. spill), earn ⭐, and read personalised feedback that helps you improve.
- Photos are endless — after the hand-crafted intros, every shape is procedurally generated (rose curves, Lissajous figures, spirographs, star-polygons, constellations…).
| ♾️ Endless play | Deterministic procedural shapes — photo #N is always the same, so it's fair and infinite. |
| 📅 Daily Challenge | One shape seeded by the date — the same for everyone, all day. |
| 🔊 Generative audio | A synthesised ambient pad plus chimes that follow your painting speed & height. No audio files — it's all live. |
| 🔥 Streaks | Chain photos that score 65%+ for a running streak counter. |
| 🔓 Unlockables | Earn lifetime stars to unlock 5 brushes & 6 palettes — a reason to keep playing. |
| 🖼️ Gallery | Tap Keep to save your best shots locally and flip back through them anytime. |
| ↶ Undo / Redo | Full stroke history (up to 20 steps) — never fear a wrong move. Works with Z / X keys too. |
| 🖌️ 10 brushes | Comet, Ribbon, Sparkler, Neon Pen, Ink (speed = pressure), Chroma (rainbow split), plus Mirror, Trine, Kaleidoscope & Bloom for instant symmetry art. |
| 📏 Brush size | A size slider (55–180%) — plus ↑/↓ keys — for fine detail or bold sweeps. |
| 🎨 12 palettes | Aurora · Ember · Ice · Neon · Gold · Rose · Sunset · Lagoon · Candy · Toxic · Mono · Prism. |
| 🖼️ 17 shape families | Roses, Lissajous, spirographs, star-polygons, butterflies, superformula blooms, constellations, waves & more. |
| 🎓 Learn to draw | Animated stroke-order coach + 12 rotating technique tips + targeted post-photo feedback. |
| ⭐ Progress tracking | Best score and a lifetime-stars total, saved locally. |
| 🌌 Free Studio | A no-pressure mode to just make art. |
| 💾 Save & Share | Export a PNG, or share straight to other apps via the Web Share API. |
| ⌨️ Keyboard shortcuts | Z undo · X redo · Space develop · ↑/↓ brush size · C clear (Studio). |
| 📱 Mobile-first | One-thumb controls, safe-area aware, works offline. |
| 🪶 Zero dependencies | One HTML file. No build, no server, no tracking. |
Just open index.html in any modern browser. That's the whole install.
Or serve locally (recommended so Save Photo and touch events behave exactly as in
production):
# any static server works — pick one
python3 -m http.server 8000
# then visit http://localhost:8000- Vanilla JavaScript + the HTML5 Canvas 2D API — three layered canvases (background, additive light paint, live FX/coach).
- Additive
globalCompositeOperation = 'lighter'blending for authentic glow. - A pre-rendered radial-gradient sprite atlas for fast, smooth trails.
- Seeded PRNG (
mulberry32) for deterministic, endless level generation. - No frameworks, no build tooling, no dependencies.
AFTERGLOW is built on simple registries — add a brush, palette, shape, or tip by dropping in a single entry, and it wires itself into the UI automatically. See DEVGUIDE.md for the full map, tuning knobs, and worked examples.
// add a palette — appears in the ⚙ menu automatically
{ name: 'Sunset', lo: 350, hi: 40, speed: 1.0, cycle: false },Every push to main auto-deploys to GitHub Pages via
.github/workflows/deploy.yml.
Live at https://DLinacre.github.io/afterglow/.
- Undo / redo with stroke history
- Expanded brush set (10) + brush-size control
- Lifetime progress tracking (stars) + streaks
- Keyboard shortcuts
- Ambient audio that responds to painting speed
- Daily challenge (seed the RNG with the date)
- Native share sheet via the Web Share API
- Unlockable brushes & palettes tied to star totals
- Local gallery of saved shots
- "No-go" dark-zone tension mode (scoring mask already exists)
- Online leaderboard for the daily challenge
MIT © David Linacre
Made with light. ✦
