На чистом CSS такое делать слишком долго. Проще взять связку SVG+JS. Рисуете для каждой точки path - путь, по которому она двигается, а затем на JS ее двигаете по этому пути. Есть много готовых решений, например
вот простое демо на чистом JS, да и в библиотеках вроде
anime.js есть такая функция.