Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam mehr erfahren

Programme Entwerfen ❯ SS 2012

Dokumentation des Kurses »Programme Entwerfen« Sommersemester 2012

Aufgabe

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.

2.jpg2.jpg

Zielsetzung

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.

7.jpg7.jpg

1.jpg1.jpg

Funktionsweise

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.

3.jpg3.jpg

Programmierung

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.

5.jpg5.jpg

4.jpg4.jpg

Fazit

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.

Ein Projekt von

Fachgruppe

Interfacedesign

Art des Projekts

Studienarbeit im ersten Studienabschnitt

Betreuung

foto: JW

Entstehungszeitraum

Sommersemester 2012