Такую анимацию легко сделать на SVG+Javascript. Потом делишь анимацию на нужное кол-во кадров, захватывается каждый кадр в отдельную картинку (сохраняешь например в png). Либо можно сохранить каждый кадр в svg и пакетно отрасторизовать каждый кадр (например,
rsvg). Далее, прогой
ffmpeg можно объединить все кадры в единный gif.