Возможно, particles.
Но, мне кажется, что проще всего в момент столкновения заменить окружность набором более мелких, придать им начальную скорость разлёта в случайных направлениях и с каждой итерацией скорость умножать на коэффициент меньше 1 по аналогии с силой трения, например, на 0.95. когда скорость частиц будет ниже порогового значения, остановить