repo: ~/Projects/scarlet-riverboat-masquerade · 36 commits · 0 in last 24h, 0 in last 7d ·
Search the build
36 commits indexed
a5a2c5a2026-09-04snapshot before restart: preserve in-flight work
ab812882026-09-02riverboat: Phase 1 archive.org reliability — cap year-count fetches at 5 concurrent, polite retry/backoff/breaker, localStorage count cache (kills the false "0" tiles)
9899b132026-09-02contrarian FIX FIRST: per-build AbortController cancels stale year-fetch batch on source-switch; drop dead sort ternary; report reflects BLOCKED-on-live-verify not DONE
d2d13412026-09-025x sweep 2: abort-timeout on archive.org fetches so a hung/down archive fails into the graceful error state (no infinite '…'); accurate error copy
6b0db052026-09-02riverboat: rebuild year browse per UX review — tappable 44px year-tile grid (no more 11px bars), Source selector (Grateful Dead + Dead & Company), heat-colored tiles, loading/error states, mobile one-tap player, bigger transport controls
6ceafcc2026-09-02riverboat: interactive touring-history year map (bars sized by shows/year) replaces year dropdown
394ecd12026-09-02Music controller: full-archive browse — loads the most-played Dead shows by default (18k+ shows), a Year selector (1965-1995) to browse any year, plus search; shows total count
ced80322026-09-02Back-link: room now links '← The Main Stage' (stage.agentabrams.com) instead of the DEAD homepage
4adfed72026-09-02Add 3D Three.js orb floating over the riverboat — beat-reactive wireframe icosahedron that pulses to the LIVE Dead stream (via the react analyser), warm ember palette; gentle idle when music is off
88dc7e02026-09-01Riverboat room: searchable full Grateful Dead archive — type anything (date/city/venue/song) to search the entire archive.org GratefulDead collection and play any show; curated 5 kept as quick picks; venue marquee shows searched venues
546a5e72026-09-01Replace emoji motifs with original DRAWN animated song-items: flickering flames, spinning flowers, twinkling stars, rotating snowflakes, water drops, spinning wheels, flapping birds, + musical notes default — keyed to the current track title, floating up through the scene
c67e4f52026-09-01Concert venue backdrops (per-show stage-light beams + venue marquee: Fillmore/Veneta/Jai-Alai/Barton Hall/Nassau, key v) + song-motif layer that floats item glyphs matching the current track title (fire/mountain, sugar/rose, cat, train, rain/snow...)
91da5702026-09-01Beef up the bear dance: bigger sway + always-grooving bounce + bigger arm waves/leg steps + stronger beat hop; more sensitive beat detector so hops fire more often against live music
cf28d812026-09-01Collapse all control panels on load; add master ☰ Controls toggle (key c) to reveal/hide the dock, cameras, chapters, and music room — art leads first, user opens controls
ab9d5512026-09-01Bears spread onto the boat decks too: 3 dancing bears join the revelers on deck (density-gated, beat-synced) alongside the shoreline troupe
7a9cd0e2026-09-01Add Dancing Bears slider (1-10): user-sized troupe auto-distributed + scaled across the shoreline, 10-color palette, each dancing + beat-synced
ef794b82026-09-01Colorful dancing-bear troupe synced to the music: rose/gold/teal bears, arms raised overhead, hip sway + dance steps, HOP on the beat when React is on. Original design (not the GD trademark)
77a45782026-09-01Restyle bear puppet festive + original (brighter cinnamon fur, cream belly, chunkier, big cute eyes w/ highlights, rosy cheeks, smile) — captures the joyful dancing-bear spirit without copying the trademarked Grateful Dead bear. Rig intact
09054a72026-09-01Rig fix: connect head-to-body with a neck, raise arms to proper shoulders (add Left/Right Shoulder joints) so the bear reads as one connected puppet
5f0a7a72026-09-01Add Character-Animator-ready rigged bear puppet .psd (assets/dancing-bear-puppet.psd): per-part named layers (Head/Body/Left+Right Arm+Leg, eyes with pupils+blinks+eyebrows, 14 mouth visemes for lip-sync, +draggable handles). Adobe-source asset, not part of the web build
00634a92026-09-01Upgrade cubs to articulated puppet-style dancing bears: jointed swinging arms/legs, hip sway, head bob, muzzle+ears+belly, beat-reactive. Adobe-Character-Animator-style articulation, done live in-canvas (original bears, not the GD trademark)
cda7b3e2026-09-01Museum label completeness: document A (react), P (pterodactyl), click-to-fire in the keyboard help; describe the full cutout cast (cubs, songbirds, pterodactyl) + paper-grain style
b44db4f2026-09-01Add singing songbirds: cutout shoreline birds with ♪♫♬ note-bubbles that pop rhythmically (and on the beat when reactive). Original glyphs, no lyrics — copyright-safe
9486ed32026-09-01Full cutout pass: flat-fill + bold outlines on dancers (with mask bands) and the riverboat (hull/decks/stacks/pilot house). Complete South-Park-cutout art direction across the cast + boat
18429742026-09-01Cutout/South-Park art pass: flat-color fills + bold dark outlines on the animal cast (fox/heron/rabbit/bear/cubs) + construction-paper grain overlay. Dancers stay silhouettes per the brief
1043c032026-09-01Keep animals/cubs grounded (lower hop/bounce); add pterodactyl fly-over (button + key p) soaring across the canyon
b8b147f2026-09-01Add Photoshop-composited canyon-backdrop.png asset + two dancing bear cubs beside the conductor bear (bob/rock, beat-reactive)
6f9809b2026-09-01Sync objects to the music: beat detection drives pulsating lamps + fireworks bursts on the beat; click/tap anywhere launches a firework (Model Arena style). Additive, react-gated
3e917c72026-09-01Add optional 'React to Music' mode: Web Audio AnalyserNode on the live archive.org stream (CORS-open) drives lantern bloom, firefly flare, dancer bounce + boat bob on the beat. Additive — authored motion stays the default; museum note updated
6aa7d782026-09-01Harden music room per codex review: fetch race-token guard, per-track audio-error skip (ignore benign ABORTED), keyboard guard for form fields, drop role=application
2b38b3c2026-09-01Add conditional DEAD back-link (shown only when served as /room of dead.agentabrams.com)
85c6c772026-09-01Add Music Room: stream the Grateful Dead Live Music Archive (archive.org) — reuses the dead-agentabrams curated catalog; native transport, set list, seek, source attribution, embed fallback. Motion stays authored (no audio analysis).
81876922026-09-01Harden shade(): clamp t to [0,1] and channels to [0,255] (codex review)
f968af52026-09-01Fix NaN-color crash that froze the render loop (pal() rgb strings fed to hexToRgb); add shade() helper, deeper canyon parallax, favicon
a1ca1d22026-09-01Scarlet Riverboat Masquerade: working single-file animated gallery
Authors
Steve36
Agents used
none detected
Skills used
/claude2
/code2
/cubs2
/backoff1
/breaker1
/painted1
/status1
/zero1
/negative1
/mock-reliability1
/live-happy1
/playback1
/down1
/error1
/year1
/city1
/venue1
/song1
/mountain1
/rose1
/snow1
/leg1
/hide1
/gold1
/teal1
/dancing-bear-puppet1
/legs1
/decks1
/stacks1
/pilot1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
a5a2c5a · 2026-09-04 · snapshot before restart: preserve in-flight work
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011gbmuMHgCLDEPM4TpfAr4G
ab81288 · 2026-09-02 · riverboat: Phase 1 archive.org reliability — cap year-count fetches at 5 concurrent, polite retry/backoff/breaker, localStorage count cache (kills the false "0" tiles)
buildMap fired all 31 per-year count queries at archive.org at once; archive
drops ~40% of that burst as steady-state, so ~40% of tiles rendered a false "0"
(a failed fetch became n:-1 then cached/painted as 0). Phase 1:
- mrPool: cap the count-fetch burst at 5 concurrent (was unbounded Promise.all).
- mrFetchCount: max 2 retries, jittered backoff, 429 backs off HARDER than a
timeout; r.ok/status===429 checked BEFORE r.json() so a 429 is never parsed as
success; batch-shared circuit breaker opens after 6 consecutive failures and
short-circuits the rest instead of hammering a struggling nonprofit. Count
timeout tightened to 6s (counts return in ~0.18s) to bound time-to-error.
- mrCacheLoad/Save: per-source+year localStorage cache; NEVER persists a
failed/zero/negative count (a cached 0 is a poisoned read), current calendar
year always re-fetches, ~30-day TTL. buildMap paints known-good cached counts
instantly then refreshes live via the capped pool; a live failure NEVER
overwrites a good cached value with 0.
- failed tiles show a non-destructive "—" error state, never a false 0.
Tests (global playwright via PW env, no npm deps):
- tests/mock-reliability.cjs: route-interception mock proving concurrency cap
(saturates at 5, never exceeds), no false "0" under a 40% failure mix, bounded
retries + circuit-breaker halt (no retry storm), and 429 backing off harder
than a timeout. 14/14.
- tests/live-happy.cjs: real archive.org, no regression — 31 GD tiles populate
(1994=460), D&C source loads, no false 0, no page errors. 7/7.
Audio/playback, source selector, and UI markup unchanged. No Relisten (Phase 2).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012k4CBzSCAmou3w8SYxQJLb
File tree
8 files tracked. Click any to browse the source at HEAD.