Karaoke Room.
A self-hosted karaoke system: a Python ML pipeline separates vocals from instruments and aligns lyrics word-by-word (with CJK romanization), a Tauri big-screen player mixes the stems live, and phones act as remotes.
Experiments, prototypes, and things I made for fun.
A self-hosted karaoke system: a Python ML pipeline separates vocals from instruments and aligns lyrics word-by-word (with CJK romanization), a Tauri big-screen player mixes the stems live, and phones act as remotes.
A two-player arcade football game in Java with a hand-written 2D physics engine: vectors, gravity, collision reflection and a fixed-timestep game loop, all coded from scratch on a bare graphics library.
A real-time 90s-music debate arena: pick a side, argue it out in a live Socket.IO chatroom, then the room votes on the winner. Built on Express, Redis and PostgreSQL with a server-driven timer, voting and leaderboard, all wired up with docker-compose.
A networked, text-based Battleship in Java: several clients connect over TCP to a concurrent server, with the shared game state and turn-taking guarded against the races and deadlocks that come with real multiplayer.
A config-driven CLI that syncs PC game saves between machines using a USB drive as the go-between. It knows where each game hides its saves, checksums every copy, and never deletes a save it hasn’t already backed up.
A Node.js service that steers Spotify playback from your activity, talking to the Spotify Web API with token refresh and a set of automation rules so the right music follows what you’re doing.