Yeah, tweaking it didn't really work out that well. The picture above was generated with 1000 objects at roughly 200 FPS. For 10000 objects I barely get 10 FPS. Then again, I'm mostly CPU-bound at the moment, and the calculations should parallelize pretty well, so if it turns out I need extra speed I'll just throw in a few calculation threads for those newfangled multi-core machines. My algorithms are far from optimal, but meh, no tweaking right now.
Also, no need for sprites at the moment. Perhaps later, when I have a clearer idea of the art direction I'm going for. Well, I have some ideas (or a lot of ideas), but I need to think about it some more.