In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
Dokumentation des Kurses »Programme Entwerfen« Sommersemester 2012
Aufgrund der verwendeten und zu erlernenden Programmiersprache Processing ist das Ergebnis zwangsläufig visueller Natur, ein Bild. Entweder kann existentes Bildmaterial analysiert und manipuliert oder anderweitig verarbeitet werden, es können neue Bilder und Welten geschaffen oder existente Bilder mit Code nachempfunden werden. Oder alles zugleich.
Mein persönliches Ziel lag darin, mit Hilfe von Processing eine komplett zufällige und trotzdem komplexe Vektor-Illustration zu erstellen, die dabei über die menschenmögliche Gestaltung, zum Beispiel mit Adobe Illustrator, hinausgeht.
Im Gegensatz zu klassischen Pixelgrafiken ist die Gestaltung von sehr komplexen Illustrationen extrem aufwändig. Dies soll jedoch mit Processing so vereinfacht werden, dass durch Ausführen des Programms jedes Mal eine neue, zufällig generierte Illustration entsteht.
Die Inspiration dazu schöpfte ich u. A. aus den Illustrationen von Joshua Davis.
Wird das Programm ausgeführt, so wird eine komplett zufällige, aber dennoch geordnete Vektor-Illustration erstellt, die automatisch im Programmordner als PDF-Datei gespeichert wird. Durch Schließen und erneutes Aufrufen des Programms wird eine neue Vektorgrafik erstellt, die oftmals eine völlig andere Struktur aufweist. Somit entstehen in Sekunden extrem verschiedene Kompositionen aus geometrischen Formen. Dabei liegt jedoch allen Grafiken der gleiche Programmcode zugrunde.
Wie funktioniert das überhaupt? Wie kommt die Struktur in die Grafik?
Im ersten Schritt wird eine Position generiert, die in der Mitte der Zeichenfläche liegt. Diese wird ununterbrochen in eine zufällige Richtung verändert, sodass sie folglich zufällig über der Zeichenfläche umherwandert. Dies erfolgt durch eine Kombination von noise()- und random()-Befehlen, die die Position abändern.
Dieser in jedem Frame neu generierten Position folgen nun „Schlangen“ - generiert aus festgelegten, geometrischen Formen. Dazu wurde eine externe Klasse namens „Snake“ angelegt, sodass sich beliebig viele Schlangen in Form von Arrays aufrufen lassen. Dabei wird jede Schlange durch Positions-Vektoren definiert, die in jedem Frame angeben, wo für eine bestimmte Schlange eine geometrische Form gezeichnet werden muss.
Für verschiedene Arrays von Schlangen lassen sich Trägheit, Farbe und Größe verändern oder sogar zueinander in Beziehung setzen. So konnten auch die schwarzen und weißen Formen realisiert werden, die zufällig um die Schlangen gezeichnet werden. Je näher die Schlange der führenden Position ist, desto größer werden die Formen (z.B. in Kurven); ist die Position weiter entfernt, werden die Formen extrem klein (auf gerader Strecke).
Zusätzlich gibt es auch Arrays mit Farben und ein Array mit den geometrischen Formen, aus denen für bestimmte Schlangen Farbe und Form zufällig bestimmt werden.
Damit das Programm nicht endlos läuft (eine endlose Version gibt es übrigens auch), ist es auf 1400 Frames limitiert. Damit wird vermieden, dass die Kompositionen langweilig werden: Wenn das Programm zu lange läuft ist der komplette Bildschirm irgendwann ausgefüllt.
Es war sehr überraschend, wie schnell man auch als totaler Anfänger mit Processing große Fortschritte machen kann. Was man selbst nicht weiß, kann man sich in Processing-Foren schnell zusammensuchen. Mit kleinen Code-Bausteinen und Hinweisen kann man sich so sehr gut selbst helfen. Aus zahlreichen, kleinen Experimenten, die dann später kombiniert werden können, ließ sich die Motivation schöpfen. Auch die Rücksprache mit Jens bezüglich Vektoren und Klassen hat enorm geholfen. Die externen Klassen waren es letztendlich, die mein Projekt am Ende enorm voran getrieben hatten. Ansonsten wäre es wohl bei nur einer Schlange geblieben - wie langweilig!
Letztendlich habe ich genau das erreicht, was ich mir von dem Kurs erhofft hatte: Etwas Illustratives zu schaffen, das, per Hand erstellt, Tage benötigen würde. Dies wird definitiv nicht mein letztes Pocessing-Projekt sein - in der Zwischenzeit habe ich meine Snake-Klassen noch etwas verfeinert und z.B. Schatten eingebaut. Schade, dass es keinen Aufbaukurs gibt, da ich bei diesem Kurs wirklich viel gelernt habe.