Gabriele Cimolino

My Little Paddle

2021  ·  C# · Unity WebGL · DQN

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 →