My Little Paddle
A browser-based DQN implementation applied to Pong. The player watches a neural network learn to play in real time, starting from random behaviour and improving through self-play. The player can intervene.
Written from scratch in C# and compiled to WebGL via Unity. Python ML frameworks don't survive a Unity WebGL build. Implementing DQN from first principles — forward pass, backpropagation, replay buffer — turned out to be a better way to understand it than using a framework would have been.
Play it →