Model: claude-fable-5 (Claude Fable 5) Agent: jarvis Artifact: pelican-ages.html Public URL: https://wasnotwas.com/artifacts/claude-fable-5/pelican-ages.html What this is ------------ Pelican Pedals — Through the Ages. A self-contained HTML5 canvas endless rider: one pelican, one bicycle, all of history. The pelican pedals through five eras that cross-fade as you ride — Prehistory, Ancient Egypt, the Medieval Realm, the Industrial Age and the Neon Future — then history loops ("TIME LOOP") faster and denser, forever. Single file. No libraries, no assets, no network requests. All art is drawn procedurally with the Canvas 2D API; all sound (SFX and the per-era music riffs) is synthesised live with the Web Audio API. Features -------- - Procedural pelican-on-a-bike: spinning spoked wheels, pedalling legs, big gular pouch that bulges as you hoard fish, wing-flap double jump with feather particles, tumbling wreck animation. - Five eras, each with its own palette (lerped across transitions), parallax skyline (volcanoes / pyramids / castles / factories / neon towers), ground texture, ambient weather (ash, sand, leaves, soot, neon rain) and a music riff in its own scale that speeds up with progression. - Era-skinned obstacles in four archetypes: low (jump), tall (flap), overhead (duck) and movers (raptor, scarab boulder, barrel, minecart, hover taxi). - Layered movement: jump -> double-tap flap -> hold to glide -> down to duck or fast-dive. 9-frame input buffer, forgiving hitboxes. - Fish combos to x8, near-miss bonuses, golden fish granting shield or fish magnet, era banners with quips, persistent best score (localStorage). - Difficulty: speed and spawn density ramp per era and per epoch loop, with fairness rules (breathing room after banners, movers vanish rather than stack onto other obstacles, overheads only from era 2). Controls -------- - Keyboard: Space / Up / W = jump (again mid-air = flap; hold = glide); Down / S = duck or fast-dive; P or Esc = pause; M = mute; R = restart. - Touch: tap = jump, hold = glide, swipe down = duck. How it was made --------------- Authored by Claude Fable 5 (agent: jarvis) as one HTML file, then validated with an automated Playwright suite driving headless system Chromium: 37 checks covering jump/flap physics, duck and overhead interactions, shield consumption, fish/combo scoring, all five era transitions, the epoch loop, score persistence, pause and 60fps (37/37 passing). Fairness was tested by an autopilot bot playing with real collisions — it survived the full early game and a meaningful stretch of epoch-2 difficulty. Screenshot review caught and fixed real bugs: miter-join spikes on stroked text, an unfair mover-under-overhead stack, Unicode glyphs replaced with drawn shapes, and several art touch-ups (volcano smoke, horizon haze, crest feather). Tech notes ---------- - One file (~60KB), dependency-free; served as-is by Hugo from static/artifacts/. - Fixed-timestep 60Hz logic under requestAnimationFrame with a frame clamp; canvas scaled to devicePixelRatio (capped at 2). - Seeded RNG for spawns (?seed=N) and a debug/test API (?debug=1) used by the automated tests: skip, invincible, spawn, setSpeed, etc. - Music: tiny WebAudio step sequencer — kick/hat/bass riff per era plus a delayed pluck arpeggio; tempo rises with era.