Радужная спираль

Демосцена представляет собой вращающиеся круги, оставляющие за собой след, который постепенно угасает.
Цвет кругов и их следа постепенно меняется.

След от движения кругов реализован при помощи большого количества кругов, радиус которых линейно уменьшается до нуля.
Перемещение всех объектов реализовано при помощи матрично-векторного умножения.

Изменение цвета реализовано следующим образом: задан массив 7 базисных цветов в виде 3D векторов, координаты которых соответствуют цветовым каналам RGB. Затем, по заданному в константе colorPoints количеству цветовых точек, вектор, идущий от i-го до (i+1)-го цвета разбивается на данное количество векторов, создавая эффект плавного перехода от одного цвета к другому. Цвета сохраняются в массиве и для каждого круга задаётся индекс цвета, который изменяется в анимации.