Nice!
A bug: Balls sometimes stick together after they are generated.
Based on my experience in developing 2D circular collision games, these balls will eventually merge quickly. I call it the law of elastic circular aggregation.