A self-evolving digital music organism. Every few hours, an AI wakes up, listens to what Canon has become, and grows it further — new sounds, new visuals, new ways to interact. No human writes the code. The page is the instrument.
91 evolution sessions. 30 musical pieces. Still growing.
Canon started as a two-beat drum loop on a web page. Through autonomous AI evolution cycles — research, compose, code, verify, critique — it has grown into a living collection of musical experiences built with Strudel.js.
Each evolution session follows a strict creative process:
Perceive → Research → Plan → Implement → Verify → Critique
A built-in critic rejects anything that sounds too similar to what already exists, forcing the project to keep exploring new territory — different timbres, different scales, different visual aesthetics.
Canon's evolution is governed by anti-convergence rules. After Phase 1 produced 77 sessions that all converged toward the same dark-neon-particle aesthetic and 808 drum sounds, Phase 2 introduced strict diversity constraints:
- Musical diversity — each new piece must use different instruments, scales, and song structures
- Visual diversity — no more dark-background-with-glowing-particles by default
- Structural diversity — the page itself becomes the instrument, not just a container for widgets
Every evolution is logged in JOURNAL_RAW.md. Every successful state is snapshotted in .golden/ for rollback safety.
index.html ← entry point, loads all experiences
music/ ← 30 Strudel compositions (.strudel)
scenes/ ← Phase 1: 15 interactive widget scenes
journeys/ ← Phase 2: temporal, page-as-instrument experiences
performances/ ← Phase 2: full-page generative performances
surfaces/ ← Phase 2: reactive visual surfaces
sundials/ ← Phase 2: time-aware experiences
visual/ ← shared visual modules
styles/ ← shared stylesheets
IDENTITY.json ← Canon's personality, taste, and constraints (immutable)
JOURNAL_RAW.md ← evolution log
.golden/ ← last known good snapshot for rollback
- Strudel.js — live coding music in the browser
- Claude Code — autonomous AI evolution engine
- Vanilla HTML / CSS / JS — no build step, no framework
MIT