2025 – Present · Solo-developed rhythm game
Transientica
A Unity rhythm game played by beatboxing into a microphone.
I built the game and its audio recognition in C#. Before a song starts, it learns how that player makes a kick, snare and hi-hat, then classifies each live hit against the notes in the beatmap.
Unity 6 · C# · KNN · FFT · In development
Current build
Training and gameplay in Unity
Players record ten examples of each beatbox sound with their own microphone. The trained model then classifies live hits while the game judges their timing against a beatmapped song.
Audio path
From microphone onset to a judged note
The current build listens, recognises the sound and judges its timing entirely inside Unity. It does not need Python or another application running beside the game.
When the microphone detects a hit, the game measures seven traits of the sound and compares them with the player’s recordings. A KNN classifier uses that comparison to decide whether the hit was a kick, snare or hi-hat.
The game matches the recognised hit to the nearest note using Unity’s audio clock. A short calibration estimates microphone delay, and the player can fine-tune the offset in 1 ms steps.
Signal path Microphone → onset → 512-sample FFT → seven features → KNN → nearest note → score.
Rebuild
Why I rebuilt the prototype inside Unity
The first version recognised sounds in a separate Python program and sent the result to Unity. I replaced it with a C# system that analyses and classifies each hit inside the game.
The rebuild turned the classifier demo into a playable loop with song selection, beatmaps, scoring and saved results. Training data stays in readable JSON and can be updated between rounds.
The 2025 figures below come from the player-specific SVM prototype. Accuracy means kick, snare and hi-hat classification after training on that player’s recordings; latency covers the mouth-to-game path through Python, OSC and Unity. The current C# build has not yet been tested under the same protocol.
| Version | Model | Runtime | Accuracy | End-to-end latency |
|---|---|---|---|---|
| 2025 prototype (retired) | SVM | Python + OSC + Unity | 92% classification accuracy | 45 ms mouth-to-game |
| Current rebuild | KNN, K=5 | Pure C# in Unity 6 | Pending like-for-like benchmark | Pending like-for-like benchmark |