Every now and then I make something without JS just to make sure I still can :p
Fun fact, I originally made this with just HTML elements and border-radius for the circles. (As I suspected it would) the frame rate sucked. So I swapped in SVG circles and it is much better. The moral of this story is try to avoid using border-radius in your CSS anims if possible.
A Pen by Rachel Smith on CodePen.