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
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:
Video startet nach Anklicken eines Bildes
Corona Mutante
:
(z5+c)/z3
Verknüpfung der Pixel durch logisches NOT AND
(0:53 min)
Swirl
: z2-cz
Verknüpfung der Pixel durch logisches AND
(0:55 min)
Coloured Roses
:
(z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:11 min)
Chaos of Structures
:
(z3+c)/z
Verknüpfung der Pixel durch logisches XOR
ACHTUNG: stark irisierend
(0:41 min)
On the Fly
:
(z3-z)/(c*z2+1)
Verknüpfung der Pixel durch logisches XOR
ACHTUNG: stark irisierend
(0:37 min)
Clock Hand
:
(z3+c)/z
Verknüpfung der Pixel durch Auswahl von MAX
(1:01 min)
Trinity in Red, Light, and Blue
:
(z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:30 min)
Insight Inhibited
:
(z3+c)/z
Verknüpfung der Pixel durch logisches OR NOT
ACHTUNG: stark irisierend
(0:56 min)
Yellow Rain
:
(z3+c)/z
Verknüpfung der Pixel durch logisches OR
(0:38 min)
Red Christmas Bells
:
(z3+c)/z
Verknüpfung der Pixel durch logisches AND
(1:42 min)
Red Spheres
:
(z3+c)/z
Verknüpfung der Pixel durch logisches AND
(0:53 min)
Wirbel
:
(z3-z)/(c*z2+1)
Verknüpfung der Pixel durch logisches AND
(1:33 min)