I imagine this can be done quite easily with a big tilemap. Each tile is a colored circle. You can "draw" moving/rotating objects on the tilemap using invisible sprites. For example, a sprite of a car is moving over the tilemap with bullet behavior. The car has several frames (one for each color) and plays looping animation. On every tick check which tiles the car is overlapping and set these tiles to the current car color.
Or you can do the same with a big matrix of small sprites instead of the tilemap, but this may be worse for performance.