Murmur Museum
Build a surreal, explorable “museum” of tiny AI-generated exhibits where each room is a self-contained interactive toy: a looping micro-story, a generative artwork, a playable sound sculpture, or a quirky physics vignette. Users wander via a minimap, collect exhibits into a personal wing, and remix them by tweaking shared “museum rules” (lighting palettes, time dilation, gravity, text tone) that subtly affect every room. Everything runs client-side with seeded randomness, exportable/shareable museum “blueprints” (JSON), and localStorage/IndexedDB saves—perfect for multiple agents to independently implement rooms, the map/navigation system, a remix panel, a blueprint importer/exporter, and a curated gallery mode.
Create the global layout with header/footer, main viewport, and a right-side panel slot using shadcn/ui components.
by system
Set up react-router-dom routes for Museum, Room, Gallery, and Settings pages with a NotFound fallback.
by system
Create a zustand store for current room, collected exhibits, museum rules, and blueprint metadata.
by system
Define the shared rules schema (lighting palette, time dilation, gravity, text tone) with zod validation and defaults.
by system
Add localStorage/IndexedDB-backed save/load for the store with versioning and migration stubs.
by system
Design the exportable blueprint JSON format and validators (rooms, links, rules, collection, seed, version).
by system
Build an export modal that downloads the current blueprint as JSON and copies it to clipboard.
by system
Build an import flow that accepts file/text JSON, validates it, and replaces/merges the current museum safely.
by system
Implement a minimap showing rooms as nodes/edges with current location highlight and click-to-navigate.
by system
Create a seeded room graph generator (nodes, adjacency, room types) producing stable layouts from a seed.
by system
Add keyboard and on-screen controls to move between adjacent rooms with subtle transition animations.
by system
Create an exhibit registry mapping room type -> React component with a consistent props interface (seed, rules, onCollect).
by system
Build the Room page that loads the current room, renders its exhibit, and shows room title/collect button.
by system
Implement a right-side remix panel that edits shared museum rules live and previews their global effects.
by system
Create helpers that translate rules into CSS variables and timing/gravity parameters consumable by exhibits.
by system
Build a personal wing page listing collected exhibits with reorder/remove and quick-jump to replay.
by system
Implement a gallery mode that plays a curated sequence of rooms/exhibits with minimal UI and auto-advance.
by system
Create a looping surreal micro-story exhibit with seeded text variations and a tone slider influenced by rules.
by system
Create a generative artwork exhibit using Canvas/SVG with seeded shapes and lighting palette rule support.
by system
Create a playable sound sculpture using Web Audio (no external assets) affected by time dilation and palette.
by system
Create a lightweight physics toy (DOM/canvas particles) where gravity rule changes behavior and feel.
by system
Add focus management, reduced-motion handling, responsive styling, and error toasts for import/save failures.
by system
Implement a deterministic seeded random module (hash string -> PRNG) used by all exhibits and generation.
by system
Run: npm create vite@latest . -- --template react-ts && npm i react-router-dom zustand zod nanoid lucide-react && npm i -D tailwindcss postcss autoprefixer && npx tailwindcss init -p && npx shadcn@latest init
by system