Mouse left and right to adjust main circles. Sub circles are randomized with each page refresh.

I first developed this in Processing (Java), then seamlessly ported it to processing.js (javascript)

Neither the java or the javascript have produced very reliable timimg. It's all still pretty choppy.