favicon zurück



Op Art and More 

Verfremdete Fraktale im Stil des Futurismus

Manipulation von Fraktalen durch logische Operationen in künstlichen neuronalen Netzen

Achtung: Die Videos enthalten teilweise irisierende Bildsequenzen, die für photosensible Menschen ungeeignet sind und im Extremfall zu einem epileptischen Anfall oder Augenmigräne führen können.

Jul. 2020

Video

Fraktaldarstellung mit künstlichen neuronalen Netzen

Diese Seite enthält die Darstellung von Fraktalen, bei denen die Pixel der einzelnen Videobilder durch eine logische Verknüpfung mit den Pixeln des Vorgängerbildes gebildet werden. Hierdurch entsteht für jedes Pixel eine eigene optische Zeitreihe, die durch die logische Verknüpfung sowie durch den jeweiligen Bildausschnitt und die jeweilige Berechnung des Fraktals beeinflusst wird. Damit ein Pixel durch die iterative logische Verknüpfung nicht in einen unveränderlichen Extremwert (z.B. schwarz oder weiß) übergeht, werden Extremwerte zyklisch auf einen Startwert zurückgesetzt, ähnlich wie bei einer Modulo-Operation bei natürlichen Zahlen.

Die gewählten optischen Iterationen führen dazu, dass im Gesamtzusammenhang der Pixel scheinbare Durchblicke oder scheinbare dreidimensionale Formationen oder auch irisierende Flächen bzw. Punkte entstehen. Das eigentliche Fraktal bleibt dann nur noch teilweise sichtbar.

Als logische Operatoren wurden bei den einzelnen Videos jeweils folgende Boolsche Funktionen bei der Iteration der Pixel verwendet:

fBOOL: AND / XOR / OR NOT / MAX / OR / AND NOT

Die folgende Grafik zeigt beispielhaft den hier gewählten zugehörigen Schaltkreis mit Rückkopplung jeweils für 1 Bit (P) eines Pixels für die Operation AND NOT. Die Farbe eines jeden Pixels setzt sich entsprechend dem hier verwendeten RGB-Farbmodell aus insgesamt 24 Bit zusammen (je 8 Bit P für rot, grün und blau), die alle den jeweiligen Schaltkreis parallel durchlaufen müssen:


Hierbei wurden folgende Iterationen durchgeführt:

a) für die Berechnung der Fraktale:     

f k+1 := f (o) fk   

mit 50 Iterationen (k) bei jedem Pixel pro Videobild;  (o) entspricht einem Iterationsschritt
f: siehe oben jeweils in der Überschrift der einzelnen Videos;
c: zeitlich variabel als c(t) mit einem Ablauf der Zeitachse t := t+1 pro Videobild; c ist hierbei  eine vorgegebene Folge komplexer Zahlen, durch die die sichtbaren Strukturen des Fraktals f dynamisch verändert werden können.

Der berechnete fraktale Wert fk wird dann mit einem eigenen Farbmodell mit einer Farbtiefe von maximal nur 780 Farbstufen auf das RGB-Farbmodell umgesetzt.

b) anschließend für die weitere iterative Farbbearbeitung der Pixelfarben RGB:   

RGBi+1 := fBOOL ( RGBi , RGB(fk+1) )

mit einem Ablauf (i) von 25 Bildern pro Sekunde bei jedem Pixel. RGB(fk) stellt dabei den Wert der Farbe dar, der dem ursprünglichen Farbwert des originalen Fraktals nach der abschließenden k-ten Iteration entspricht;

Der Ablauf der Zeitachse t ist harmonisiert mit der Iteration i im Schaltkreis, d.h. t == i und entspricht einem Clockpulse.  

Dabei wurden die Boolschen Funktionen einzeln für alle 24 Bit Pn (n:=1,..24) eines jeden Pixels wiederholt angewandt und mit dem jeweils aktuellen Bit Pni des RGB-Farbwertes (RGBi) des Fraktals verknüpft. Anschließend wurden die neu ermittelten Bits (Qni+1) als neuer RGB-Farbwert RGBi+1 auf dem Bildschirm dargestellt.

Da einige Boolsche Operationen beim Iterationsprozess bei weiß (alle 24 Bit Qn == "1") oder schwarz (alle 24 Bit Qn == "0") enden, wurde bei derartigen Ereignissen jeweils ein SET oder RESET des Schaltkreises (hier im Beispiel mit einem logischen NAND) für alle 24 Bit durchgeführt.  Der Schaltkreis für ein vollständiges Pixel bei der AND NOT-Funktion besitzt daher folgenden Aufbau:


Bei einer Bildschirmauflösung von 500x500 Pixel werden somit 250 000 Schaltkreise dieser Art 25x pro Sekunde für jedes einzeln errechnete fraktale Bild emuliert, wobei pro Sekunde jeweils eine Abfolge von 25 neuen fraktalen Bildern mit je 50 Iterationen vorher als Eingangsgröße für die Schaltkreise berechnet wurde. Der nach 50 Iterationen für jede Pixelposition original errechnete fraktale Wert wird in einen RGB-Wert umgerechnet, der dann anschließend vom Schaltkreis weiterverarbeitet wird, bevor schließlich die Ausgabe auf dem Display erfolgt.

Die Schaltkreise entsprechen einem künstlichen neuronalen Netz, das einschichtig aufgebaut ist und eine rekurrente Form mit einer direkten Rückkopplung besitzt.

Durch Veränderung des Koordinatenfensters (Vergrößerungen und Verkleinerungen), bei der Navigation im Fraktal sowie Änderungen des Terms c in den fraktalen Funktionen können während der Videoberechnung mit dem Schaltkreis inkl. der automatisierten Entfernung extremer Pixelwerte (SET und RESET) Sprünge oder Bewegungen von Teilbildern und auch scheinbare dreidimensionale Bewegungen oder scheinbare Transparenz von Teilbildern im Ablauf des Videos sichtbar werden, woraus sich die künstlerische Darstellung dieser Art von Berechnungen ergibt. Einige der Boolschen Operationen (z.B. XOR) führen zu eher unangenehm wirkenden, irisierenden optischen Eindrücken. Der Vollständigkeit halber werden aber einige Videos hier dennoch präsentiert.

Eine Gegenüberstellung zwischen einer herkömmlichen Darstellung und  der durch den Schaltkreis verfremdeten Darstellung zeigt das folgende Video beispielhaft. Farben erscheinen invers (Negation der Eingangsfarben im Schaltkreis) und Hintergrundfarben bleiben durch die iterative Rückkopplung teilweise erhalten, wodurch neue Hintergrundstrukturen sichtbar werden können:

Linkes Bild Ausgabe über Schaltkreis; rechtes Bild original Darstellung:

 

Im Gegensatz zum Beispiel oben mit AND NOT findet bei der AND-Funktion (siehe Beispiel unten) dagegen keine Farbinvertierung statt, sondern  Farbmodifikationen als Folge der Rückkopplung. Hierbei werden auch die Hintergrundveränderungen im Vergleich zum Original noch deutlicher sichtbar:

 


Video startet nach Anklicken eines Bildes

Video-Verzeichnis

Corona Mutante   :  (z5+c)/z3
Verknüpfung der Pixel durch logisches NOT AND
(0:53 min)

Bild Index

Swirl   : z2-cz
Verknüpfung der Pixel durch logisches AND
(0:55 min)

Bild Index

Coloured Roses   :  (z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:11 min)

Bild Index

Chaos of Structures   :  (z3+c)/z
Verknüpfung der Pixel durch logisches XOR

ACHTUNG: stark irisierend
(0:41 min)

Bild Index

On the Fly   :  (z3-z)/(c*z2+1)
Verknüpfung der Pixel durch logisches XOR
ACHTUNG: stark irisierend
(0:37 min)

Bild Index

Clock Hand   :  (z3+c)/z
Verknüpfung der Pixel durch Auswahl von MAX
(1:01 min)

Bild Index

Trinity in Red, Light, and Blue   :  (z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:30 min)

Bild Index

Insight Inhibited   :  (z3+c)/z
Verknüpfung der Pixel durch logisches OR NOT
ACHTUNG: stark irisierend
(0:56 min)

Bild Index

Yellow Rain   :  (z3+c)/z
Verknüpfung der Pixel durch logisches OR
(0:38 min)

Bild Index

Red Christmas Bells   :  (z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:42 min)

Bild Index

Red Spheres   :  (z3+c)/z
Verknüpfung der Pixel durch logisches AND
(0:53 min)

Bild Index

Wirbel   :  (z3-z)/(c*z2+1)
Verknüpfung der Pixel durch logisches AND
(1:33 min)

Bild Index