Generative Grafiken
In allen Fällen handelt es sich um Darstellungen von klassischen Algorithmen aus der Informatik und genauer dem Machine Learning. Angefangen bei einem simplen Raster, über Quadtrees bis hin zu hochdynamischen Partikelsystemen. Als wiederkehrende gestalterische Elemente dienen festgelegte Farben und Formen.
Dot Matrix
Der erste Sketch verdeutlich die ursprüngliche Idee des Themas: Eine einfache Hintergrundgrafik mit einer simplen, aber trotzdem visuell interessanten Interaktion, die durch den Mauszeiger ausgelöst wird.
Quadtree
Quadtrees sind Datenstrukturen, bei denen jeder Knotenpunkt exakt vier Kindknoten hat. Sie wurden 1974 von Raphael Finkel und J.L. Bentley erfunden und werden meistens benutzt, um einen 2-dimensionalen Raum in mehrere Regionen zu unterteilen. Dies kommt z.B. für Karten oder bei der Bildkomprimierung zum Einsatz.
Dieser Sketch visualisiert das Prinzip eines Quadtrees in einer etwas vereinfachten Art und Weise. In diesem Fall wird ein Rauschmuster engesetzt, um die Farben zu bestimmen. Durch die verschiedenen Größen der Regionen werden mal mehr und mal weniger Details des Rauschens deutlich. Zusätzlich können die Farben des Rauschmusters durch die Mausposition verändert werden.
Shapes
Als Inspiration nutzt dieser Sketch das Buch “Analog Algorithm” von Christoph Grünberger. Thematisch geht es vor allem um einfache Systeme mit Rastern und Methodiken zur Erstellung von Logos, Schriftarten usw.
Gleichzeitig werden Ideen von frühen Pathfinding-Algorithmen aufgenommen. Das Resultat ist eine erstaunlich dreidimensional wirkende Grafik, die mit verschiedenen Parametern angepasst werden kann.
Patch
Inspiriert von modularen Synthesizern und sehr alten Computern mit sehr vielen Kabeln, zeigt dieser Sketch eine abstrakte Version einer Maschine, die sich immer wieder selbst neu verkabelt.
Regression
Dieser Sketch benutzt ein einfaches Regressions-Netzwerk mit drei Ebenen, um eine zuvor von der oder dem Nutzer*in gezeichnete Linie auf das gesamte Canvas zu übertragen. Während des Zeichnens wird dazu die X- und Y-Position, sowie die Richtung und die Länge der Linie an das Modell übergeben. Sobald die Maus losgelassen wird, startet das Modell mit der Trainingsphase.
Ist diese abgeschlossen, werden nun laufend zufällige Positionen auf dem Canvas gewählt, welche dann in das Neuronale Netzwerk gegeben werden. So werden dann neue Richtungen und Längen generiert, die benutzt werden, um rechteckige Linien zu zeichnen.
Flow Field
In diesem Sketch wird die Funktionalität von klassischen Deep Neural Networks mit Partikelbewegung visualisiert. Es wird eine Struktur mit verschiedenen Ebenen, Neuronen und Gewichten initialisiert, durch die mehrere Partikel fließen.
Die Partikel starten an einer zufälligen Positionen am linken Bildrand und wandern durch das Netzwerk. Dafür suchen sie sich basierend auf einem gewichteten Zufallsprinzip in jeder Ebene ein ›Neuron‹, welches sie als nächstes ansteuern.
Natürlich funktioniert der Datenfluss und auch der Aufbau in einem echten neuronalen Netzwerk nochmal anders. Mir ging es erstmal nur darum, die generelle Idee visuell interessant und anschaulich darzustellen.
Flocking
Im letzten Sketch geht es erneut um einen klassischen Algorithmus aus der Informatik. 1987 simulierte Craig Reynolds das Schwarmverhalten von Vögeln.
Die Simulation beschreibt das Verhalten eines einzelnen ›Boids‹, welcher seine Position immer in Abhängigkeit von den Positionen der anderen Boids in seiner Umgebung, basierend auf drei Regeln, verändert. Separation sorgt dafür, dass die Elemente nicht zu eng aufeinander liegen, Alignment steuert immer in die selbe Richtung der anderen in der Umgebung und Cohesion steuert immer in die Mitte der umliegenden Boids.
Dieser Sketch setzt die von Reynolds beschriebene Simulation interaktiv um und ergänzt diese um eine weitere Regel, die dafür sorgt, dass die Boids zum Mauszeiger fliegen und wieder abgestoßen werden, wenn sie ihm zu nahe kommen.
Gehirne
Dieser Sketch unterscheidet sich etwas von den anderen. Nicht nur, weil er ml5.js benutzt, sondern weil er generell auch etwas freier konzipiert ist.
Ich fand die Idee irgendwie witzig, künstliche Intelligenz zu benutzen, um unendlich viele Verbildlichungen von natürlicher Intelligenz (also Gehirne) zu zeichnen.
Dazu habe ich SketchRNN benutzt. Das Modell hatte bereits eine speziell auf Gehirne trainierte Version. Es generiert die Anweisungen für eine Art ›Stift‹, der bewegt werden muss und Linien zeichnet.
Diese Linien werden in diesem Sketch aber nicht einfach als Linien gezeichnet, sondern mit einer Art Pinsel, der ein bisschen so aussehen soll wie Neuronen im echten Gehirn. (Letzteres aber nur in ganz großen Anführungszeichen.)
Alle Bild-, Text und Code-Rechte liegen bei Lars Christian Schmidt.