Play.

Experiments, prototypes, and things I made for fun.

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.

Karaoke Room. screenshot

Tools Used.

  • Python
  • PyTorch
  • CUDA
  • Demucs
  • WhisperX
  • CREPE
  • FastAPI
  • Rust
  • Tauri
  • Svelte

See more.

SlugBall Showdown.

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.

SlugBall Showdown. screenshot

Tools Used.

  • Java
  • Ant
  • Simple Graphics

See more.

The 90s.

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.

The 90s. screenshot

Tools Used.

  • Node.js
  • Express
  • Socket.IO
  • Redis
  • PostgreSQL
  • bcrypt
  • Docker

See more.

Battleship Royale.

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.

Battleship Royale. screenshot

Tools Used.

  • Java
  • TCP
  • Concurrency

See more.

SaveSync.

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.

SaveSync. screenshot

Tools Used.

  • Python
  • rich
  • PyYAML
  • argparse
  • pytest

See more.

Spotify Smart Control.

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.

Spotify Smart Control. screenshot

Tools Used.

  • Node.js
  • Express
  • Spotify API
  • Tampermonkey
  • active-win
  • Vitest

See more.

© 2026 Luís Carvalho. Coded with care.