The attached JSL was used to make the video. Circle centers are picked randomly, tested for not inside another circle, then slowly grown until they touch another circle. Sets of circles are colored by using the color of the circle they touch or starting a new color set. For the video, the frames were rendered 4X too large, allowing some zooming and rotating video effects in Blender. Some of the 32000 circles are created out of sight, but all are visible at the end.
About 2000 images in about four hours. It is a brute force algorithm and would need some work finding new center points if it was going to push much deeper. Currently it tests all existing circles, not just near circles. The last few frames that were adding (many) new circles took several minutes each. You'll see them sparkle near the end.