← Back

Dev Log

Short notes on what shipped each sprint. Newest first.

Last updated: May 11, 2026 — Sprint 1 closed

Sprint 1 — Server Engine, Karaoke & Visualizer

Shipped

Chart Generation

  • Chart generation now runs server-side (stem splitting via Demucs on a droplet). If the server isn't ready, a client-side chart spins up immediately as a fallback — you always get something to play
  • Stems (drums, bass, melody, vocals) are isolated separately, which makes charts noticeably more accurate
  • All 5 difficulties are generated at once — switch between Chill and Chaos without re-uploading
  • Auto-detect lyrics via Whisper, which also improves chart precision for vocal-heavy songs

File Support

  • MP3, WAV, FLAC, OGG — all supported. Files are compressed and optimized on the way in

New Modes

  • Slash — notes fly outward from the center in 4 directions. Press the matching direction key to slash them as they reach the ring. Notes grow as they expand so you always see them coming
  • Catch — notes fall in 5 columns. Move your catcher left and right (wraps around) to grab them before they hit the ground. Each column has its own color
  • Tiles — full-column tiles drop in 4 lanes. Tap D / F / J / K (or arrow keys) when the tile reaches the line. Fast and clean
  • Karaoke — no gameplay, just lyrics in sync. Current word is highlighted as the song plays, background pulses to the beat
  • Visualizer — passive audio-reactive experience. Pick a scene and let the music drive it. Available in 2D or 3D (Three.js):
SceneWhat it looks like
Meteor RainGlowing meteors fall on each beat, impacts ripple outward
Bloom GardenFlowers grow and bloom as energy builds
Highway DriveNeon synthwave road, speed syncs to the music
Ocean WavesSwells and foam driven by the rhythm
FireworksBursts fire on every beat drop

Assist Mode

  • New optional difficulty aid toggled before a game starts — lowers note speed and widens the hit window so anyone can play
  • Scores earned in assist mode are tagged with ⛑️ on the leaderboard and ranked below non-assist entries so they don't compete unfairly
  • `assist_mode` flag stored on both the plays log and leaderboard; leaderboard index sorts non-assist first, then by score descending

Feedback & Bug Reports

  • Replaced the external Google Form with a native in-app Bug Report modal — submit directly without leaving the site
  • Three fields: "Did you have fun?" (Yes / No), bug description, and feature idea
  • Reports land in the `rhythmBugReports` Supabase table and surface on the `/admin` page for review
  • Anonymous submissions are allowed; logged-in user ID is attached when available

Home Page

  • Community section now has three tabs: Games, Visualizers, and Community
  • Visualizers tab groups Karaoke and Visualizer modes into their own dedicated browse view, keeping the Games tab clean

UI & Polish

  • Full UI overhaul across the platform
  • Difficulty selector redesigned with clearer labels and per-difficulty descriptions
  • Game description copy added across all modes
  • Visualizer 3D preview component added for scene selection
  • Bug-fix pass across Racing, Dodge, Jump, and Speed games — edge cases that caused crashes or runaway behavior are resolved

Branding

  • Site renamed from MP3 to GameSong to Game following the purchase of songtogame.com
  • Title, SEO metadata, OG tags, legal copy, and Stripe product names updated across the platform

Sprint 0 — The Client-Side Foundation

Shipped

Everything runs in the browser — no server, no infrastructure cost. The goal was to validate the core loop: upload a song, get a chart, play it. Site launched under the name **MP3 to Game** at this stage.

Chart Generation

  • Song analysis runs entirely client-side (frequency + energy detection — more of an educated guess than a precise read, but it works)
  • 5 difficulty levels: Chill, Easy, Standard, Hard, Chaos

Platform

  • Browse and play games from the game listing page
  • Leaderboard and campaign page
  • User accounts with performer avatars for profile pictures
  • Pricing page, Stripe payments, promo codes

Launch Game Modes

ModeHow you play
StandardFalling arrows — hit them with arrow keys or WASD as they land
RaceTop-down car. Steer left/right to collect gas cans that drop in time with the notes
DodgeSide-scroller. Move between 4 lanes to avoid bombs that fall on the beat
JumpSide-scroller. Press Space to jump over obstacles rolling in from the right
SpeedSingle lane. Tap anything on the keyboard as notes fly across the hit zone