Ich habe mal wieder ein Kunstprojekt gemacht. Dieses Mal war die Grundidee: Ich nehme konzentrische Kreise und einen Punkt. Der Punk (dargestellt als kleiner Kreis) bewegt sich durch das Bild, und die Kreise verschieben sich in Richtung des Punktes weg vom Zentrum, wobei sich der äußerte Kreis nicht bewegt. Und je näher der Punkt an einem Kreis ist, desto größer ist die AUslenkung der Kreise. Bei meinem ersten Versuch habe ich darauf geachtet, dass die Kreise nie ihren jeweils äußeren Kreis verlassen. Die Ergebnisse sind schon über ein MiB groß, deswegen packe ich es nicht in diesen Blogpost, ich habe zwei Animationen auf Pixelfed veröffentlicht.
Das sah dann so sehr nach Augen aus, dass ich all-in auf Augen gegangen bin. Ursprünglich wollte ich beliebig viele Etagen von Kreisen mache, aber dann habe ich nur noch drei Kreise und Farben genommen. Ein weißer, äußerer Kreis als Augapfel, darauf ein farbiger Kreis in typischen Augenfarben als Iris und dann ein kleiner Kreis, die Pupille. Außerdem sollte der Fleck (Kreis), dem die Augen folgen, sich durch die Gegend bewegen, von den Rändern des Bildes und von den Augen abprallen.

Ich habe das Ganze konfigurierbar gemacht, man kann verschiedene Bildgrößen, die Anzahl der Animationsschritte und auch die Entfernungsfunktion, wie sehr sich die Pupillen verschieben (linear oder sigmoid) einstellen. Ich musste auch noch einen Bug beheben, dass die Einfalls- und Austrittswinkel auch korrekt waren. Aber das Ergebnis ist schön, ich habe ein 5-Minuten-Video davon habe ich auf einer Peertube-Instanz hochgeladen. 1080p, ist auch im Vollbildmodus ganz schön anzusehen.
Was kommt jetzt noch? Ich könnte das zum Beispiel eine leichte, zufällige Abweichung bei jedem Abprallen einbauen. Vor allem aber versuche ich gerade, die Animation als SVG-Animation zu basteln. Grundsätzlich funktioniert das auch, allerdings ist es sehr schwierig, die Bewegung der Augen und die Bewegung des Flecks miteinander zu synchronisieren. Die Unterschiede zwischen verschiedenen Browsern sind auch groß, zu meinem Leidwesen muss ich gestehen, dass Firefox hier viel weniger effizient ist als Chromium. Die Dateigröße (unkomprimiert) ist nicht viel kleiner als die der Rasteranimation, komprimiert geht es aber richtig klein. Wenn ich das noch hinkriege, schreibe ich vielleicht noch einmal was dazu.
Der Code dazu (natürlich in Rust) ist auf Codeberg (kein besonders schöner Code, zugegeben). Der Name des Projektes ist ein (unwichtiges) Zitat aus Undertale, aber abgesehen davon hat es nichts mit Undertale zu tun.