Layout Online.indd - Creative-Code

Transcrição

Layout Online.indd - Creative-Code
1
1
Konzeption, Gestaltung, Satz: Florian Paschke
Schriften: FF Mark PRO
// CREATIVE CODE
//
florian paschke
Alle Rechte vorbehalten.
Dieses Buch oder Teile des Buches dürfen nicht vervielfältigt,
in Datenbanken gespeichert oder in irgendeiner Form übertragen werden ohne die
schriftliche Genehmigung des Autors.
Entstanden an der Bauhaus-Universität Weimar
im Rahmen der Bachelorarbeit
„Experimentelle generative Gestaltung“
Betreuer:
Prof. Markus Weisbeck
Ricarda Löser
Studiengang:
Viuselle Kommunikation
© 2014 Florian Paschke
2
2
// INHALT
// INTENSION & RELEVANZ 6
// THEMENFINDUNG 8
// DIE FORM DER PRÄSENTATION
// GESTALTUNG DES LAYOUTS
// WAS IST GENERATIVE GESTALTUNG ?
10
12
14
// ENTWICKLUNG GENERATIVER GESTALTUNG
16
// WAS IST PROCESSING ?
20
// PROZESS UND HERANGEHENSWEISE
22
// GLOSSAR 24
// PROJEKTSAMMLUNG 32
// ZEIT 34
// ON_THE_LINE 36
// CENTURY_CIRCLE 38
// BAUHAUS 40
// AUDIOVISUALISIERUNGEN 42
// MIC_TO_SCREEN 44
// SPEAKER_GENERATOR 46
// RORSCHACH 48
// CODE AND NATURE 50
// AST 52
// GROW 54
// ENDLOS56
// RE_KUR_SIV 58
// FAZIT60
// QUELLEN62
// BILDVERZEICHNIS63
3
3
// INTENSION UN D RELEVANZ
4
Diese Arbeit, welche meine wahr-
und versucht einen neuen Weg, in den
Ich habe dieses Thema auch gewählt,
Generative Gestaltung umfasst na-
scheinlich
universitären
man die Erfahrungen der „Sackgas-
da ich der Ansicht bin, dass generati-
türlich
Rahmen sein wird, möchte ich noch
se“ wiederum einfließen lassen kann,
ve Gestaltung ein sehr großes Poten-
Hilfsprogramme, ich möchte mich
einmal nutzen um experimentell und
sodass am Ende nichts umsonst war.
tial in sich birgt und in den kommen-
hierbei insebsondere der Program-
forschend zu arbeiten.
Dieses Projekt verfolgt keinen be-
den Jahren immer mehr an Relevanz
miersprache und Umgebung von Pro-
Wie der Titel des Projekts es bereits
stimmten Zweck und zielt auch auf
gewinnen wird, insbesondere in der
cessing widmen. Auch „vvvv“ oder
vermuten lässt geht es um das kre-
kein bestimmtes Anwendungsgebiet.
Kreativ-Szene sowie im Bereich der
„NodeBox“, wären sehr interessante
ative Arbeiten mit Code, also Pro-
Ich möchte hiermit vielmehr mei-
Medienkunst. Hinzu kommt das es
Umgebungen gewesen. Jedoch wollte
grammierung. Beinhalten soll dieses
ne Fähigkeiten und Wissensgrenzen
eine neue unkonventionelle Metho-
ich bei all dem Unberechenbaren auf
Projekt verschiedene Themen, welche
um ein neues Thema erweitern und
de darstellt, den Entwurfsprozess
etwas zurückgreifen, was auch in ei-
sowohl abstrakt als auch der Natur
erwarte vom Ergebnis dieser Arbeit
grundlegend zu verändern. Anders als
nen Rahmen der Bearbeitungszeit der
entlehnt sind. Im Speziellen sind da-
kein Falsch oder Richtig oder „die eine
man es von der Adobe Creative Suite,
Bachelorarbeit passt und bei dem der
mit unter anderem Rekursionen, Algo-
Arbeit“, sondern vielmehr einen ganz-
Cinema 4D etc. kennt geht es nicht
Weg aus der „Sackgasse“ raus nicht
rithmen, Trigonometrie und Fraktale
heitlichen Lernprozess, der aus vielen
mehr darum, mit einem vorgefertig-
so weit ist. Processing ist inzwischen
gemeint. Das Spannende beim For-
kleinen Bausteinen besteht. Oftmals
ten Werkzeug eine Linie zu zeichnen.
in der englischen Literatur gut doku-
schen ist, dass man am Anfang nie
sind solche Experimente die Grundla-
Sondern das Werkzeug selbst zu er-
mentiert, sodass man sich bei Fragen
genau weiß, wohin einen die Reise
ge für darauf folgende Arbeiten, wo-
zeugen und auf seine eigenen Bedürf-
oder Problemen gut selbst behelfen
führt. Ist man in einer „Sackgasse“
bei dann die erlernten Prozesse zum
nisse abzustimmen.
kann.
gelandet, geht man 2 Schritte zurück
Tragen kommen.
letzte
im
verschiedene
Formen
und
4
Mein Interesse für Processing und ge-
teilweise stark voneinander, daher
nerative Gestaltung hat ein bereits
habe ich mich dazu entschlossen,
schon 2 Jahre zurückliegendes Pro-
diese in 3 Kategorien einzuteilen. Die
jekt zum Thema „Zeit“ geweckt. Da-
erste Kategorie befasst sich mit dem
mals habe ich mich jedoch nur ober-
Thema Zeit, d. h. im Speziellen um
flächlich damit beschäftigt. Danach
verschiedene
folgte leider keine Möglichkeit mehr,
von Zeit. Die zweite Kategorie be-
darauf zurück zu kommen, bis es um
inhaltet die Weiterverarbeitung von
die Themenwahl für diese Bachelor-
Musik bzw. Tönen mit Hilfe eines pro-
arbeit ging. Da ich mich diesem The-
grammierten Equalizers zu Grafiken.
ma gerne noch mal widmen wollte,
Die dritte Kategorie befasst sich mit
bot es sich an, dieses hierfür zu nut-
Formen und Prozessen die aus der
zen. Insbesondere ein Buch mit dem
Natur entlehnt sind. Hervorzuheben
Titel „FORM + CODE – IN DESIGN,
ist dabei das Buch „Nature of Code“
ART AND ARCHITECTURE“ von Reas,
von Daniel Shiffman welches mir sehr
McWilliams und Lust diente mir dabei
geholfen hat, gewisse Prozesse zu
als Inspiration.
verstehen und nachzuvollziehen.
#1 Andy Lomas: Aggregation 4. 2005
#4 Alexander Calder: Arc of Petals. 1941
Quelle: Reas, Casey & McWilliams, Chandler: FORM + CODE - In Design, Art and Architecture
// THEMENFINDUNG
Darstellungsformen
#2 Aristid Lindenmayer: L-Systems. 1968
#5 Jonathan McCabe: MSRSTP
(Multi-ScaleRadially Symmetric Turing Patterns). 2009
Die Programme unterscheiden sich
#3 Ben F. Laposky: Electronic Abstraction 6. 1952
5
5
// DIE FORM DER
// PRÄSENTATION
Als Form der Präsentation wurde
Der Aufbau sieht wie folgt aus: Die
die Aneinanderreihung der einzelnen
Website besitzt nur eine Seite. Auf
Programme auf einer Internetseite
dieser sind alle Programme abrufbar.
gewählt, da Processing letztendlich
Der Nutzer hat somit die möglichkeit
aus dem Kontext der Programmier-
sich diese in Form eines Videos anzu-
sprache JAVA entstand und somit
gucken, bei einer Live Demo sie selber
wieder in seine ursprüngliche Umge-
auszuprobieren oder aber für OSX
bung zurückgeführt wird. Ein weite-
oder Windows herunterzuladen. Mit-
rer wichtiger Aspekt ist, dass nur so
tels eines kleinen Navigationsmenüs
die Benutzererfahrung gewährleistet
ist es möglich die Kategorien direkt
werden kann, was bei einer Video-
anzuwählen. Darüber hinaus verwen-
präsentation oder der Darstellung in
det diese Seite das Parallax Scrolling,
gedruckter Form nicht möglich wäre.
bei dem der Benutzer das Gefühl hat
Die Konsequenz daraus ist logischer-
sich Parallel mit dem Bild mitzubewe-
weise, das dieses Projekt somit auch
gen. Ansonsten ist die Seite sehr ein-
zugänlich für die Öffentlichkeit ist. Es
fach gehalten um den Fokus auf die
bedarf also keiner großen Publikation.
Programme zu richten.
www.creative-code.biz
6
6
// GESTALTUNG
// DES LAYOUTS
Die Gestaltung dieser Dokumentati-
Die hierfür verwendete Schrift FF
on ist absichtlicher Weise in Schwarz
Mark Pro wurde im Jahr 2013 veröf-
und Weiß gehalten, da die Ergebnis-
fentlicht und ist eine geometrische
se der Experimente ausschließlich in
serifenlose
Schwarz und Weiß ausgegeben wur-
unter der Leitung von Erik Spieker-
den. Darüber hinaus war diese Duali-
mann und orientiert sich an erfolgrei-
tät sehr passend aufgrund der Tatsa-
chen historischen Schriften, wie der
che, dass schwarz und weiß mit dem
Lucida, Futura oder Kabel. Dabei ist
Binärcode 1 und 0 gleichgesetzt wer-
sie jedoch aufgrund ihrer größeren
den kann und somit eine Verbindung
Mittellänge, breiteren Versalien und
zwischen Realität und Virtualität ge-
den offeneren Formen zeitgemäßer
schaffen wird.
und durch die erhöhte Lesbarkeit bes-
Überschriften
werden
durch
Sie
entstand
Quelle: http://www.fontblog.de/premiere-ff-mark-geometrische-sans-fuer-unsere-zeit
Die
Schrift.
ser einsetzbar, sowohl für Überschrif-
zwei Schrägstriche eingeleitet, diese
ten, wie auch im Fließtext.1
„Slashs“ werden beim Programmie-
Diese Schrift wurde gewählt, da sie
ren verwendet, um hinter einer Code-
sich mit ihren geometrischen Formen
zeile im Editor ein Kommentar zu hin-
an der Idee des Bauhauses orientiert
terlassen. Das heißt alles was hinter
und ähnlich wie die entstandenen
zwei Schrägstrichen steht, wird vom
Grafiken einen gewissen Minimalis-
Compiler ignoriert und nicht als Code
mus und Einfachheit ausstrahlt.
angesehen, sondern als eine Form der
Dokumentation.
Schriftfamilie FF Mark Pro
1
7
Vgl. http://www.fontblog.de/premiere-ff-mark-geometrische-sans-fuer-unsere-zeit
7
// WAS IST GENERATIVE GESTALTUNG ?
Als generative Gestaltung wird eine
Das generative Gestaltung immer
Entwurfsmethode in unterschiedli-
mehr Bedeutung zugemessen wird,
chen Bereichen der Gestaltung be-
liegt insbesondere an den neuen Ent-
zeichnet. Das Hauptmerkmal ist da-
wicklungsumgebungen, wie z. B. Pro-
bei, dass der Output – was ein Bild,
cessing, VVVV, NodeBox usw. und
Sound, Animation etc. sein kann –
Scriptingmöglichkeiten
durch einen Algorithmus erzeugt wird.
weise die in Adobe InDesign optional
Sie umfasst insbesondere Aufga-
integrierbare Erweiterung Scripto-
benstellungen
Bereichen
grapher), welche auch Gestaltern mit
Design und Architektur. Im Bereich
geringer Programmiererfahrung die
des Kommunikationsdesigns geht es
Möglichkeit bieten, ihre Ideen auf die-
überwiegend um die Erstellung von
se Weise umzusetzen.
Informationsgrafiken,
den
Copyright Hartmut Bohnacker, Julia Laub, Benedikt Groß, Claudius Lazzeroni (2009)
Buch „Generative Gestaltung“, www.generative-gestaltung.de
aus
(beispiels-
Diagrammen
oder flexiblen Erscheinungsbildern. In
der Architektur dient die generative
Gestaltung hauptsächlich der Simulation und Formfindung architektonischer Strukturen.2
Das Prinzip generativer Gestaltung
2
8
Vgl. http://de.wikipedia.org/wiki/Generative_Gestaltung
8
// ENTWICKLUNG GENE RATIVER GESTALTUNG
Anfang der 1960er Jahre begannen
gannen fast zeitgleich in den Jahren
Was jedoch Nake und Nees hervor-
die ersten Wissenschaftler mittels
1963/ 1964 sich mit den ästhetischen
hebt, ist ihr wesentlich konzeptio-
Computer Grafiken zu erzeugen, wel-
Möglichkeiten des Computers ausei-
nellerer Ansatz, da sie über die Pro-
che per Plotterzeichnungen umge-
nander zu setzen. Wohlgemerkt völlig
grammierung von Algorithmen ihre
setzt wurden. Max Bense, Professor
unabhängig voneinander.
Grafiken generierten. In den USA und
für Philosophie und Wissenschafts-
Ebenfalls 1965 stellte Michael Noll
Japan hingegen wurden eingescann-
theorie an der TH Stuttgart war der
in der Howard Wise Gallery in New
te Bilder weiterverarbeitet, was in
Begründer der Informationsästhetik
York seine Werke unter dem Thema
der weiteren Entwicklung als „Picture
und publizierte mehrere Bücher zum
„Computer Generated Pictures“ aus.
Processing“ bekannt wurde. Diese
Thema Kunst und Computer.
Noll war Forscher in den Bell Labs in
beiden grundlegend unterschiedlichen
Eben dieser Max Bense war es, der
Murray Hill, New Jersey. Er entwarf
Ansätze ziehen sich vom Anfang der
die beiden deutschen Pioniere der
die ersten Kunstwerke am Computer,
Entwicklung der Digitalen Kunst bis
„Digitalen Kunst“ Frieder Nake und
welche auf Zufalls-Prozessen basier-
zur Gegenwart hin.7
Georg Nees dazu inspirierte 1965 eine
ten.
Im August 1965 fand in Zagreb ein in-
Ausstellung mit dem Titel „Generati-
Auch in Japan begannen zur selben
ternationales Symposium statt (Com-
ve Computergrafik“ zu realisieren, in
Zeit die ersten Versuche mithilfe des
puters and Visual Research). Dieses
der sie am Computer generierte Plot-
Computers Kunst zu generieren. Ins-
Symposium stellte die Fortsetzung
terzeichnung auf Papier ausstellten.
besondere Masao Komura ist hierbei
einer Ausstellung und Künstlerbewe-
Beide waren Mathematiker und be-
zu erwähnen.6
gung „Tendencije – New Tendencies“
3
4
9
Vgl. Lieser, S. 14
Vgl. ebd., S.17
5
Vgl. ebd., S.17
6
Vgl. ebd., S. 25
3
4
5
7
Vgl. Lieser, S. 14
Frieder Nake: Rechteckschraffuren. 1965
dar. Es wurde computergenerierte
Kunst mit Zeichnungen und Design in
Verbindung gebracht, wobei alle Arbeiten ähnliche konzeptionelle Ansätze aufwiesen. Der Stellenwert dieser
Bewegung wurde erst in der heutigen
Zeit erkannt.
9
Mit dem Durchbruch des World Wide
Web’s 1994 war es nun möglich eine
internationale Community zu schaffen die auf kurzem Wege miteinander
kommunizieren und ihre Gedanken
austauschen konnte. Doch trotz der
verbesserten grafischen Möglichkeiten der Computer waren die Ergebnisse oftmals ästhetisch noch nicht
Masao Komura, Makato Ohtake: Running Cola is Africa. 1967 - 68
sehr ansprechend. Erst mit der Jahr-
Durch diese ersten Computergrafi-
tausendwende und der Entwicklung
ken und -zeichnungen war ein neuer
leistungsstarker Rechner und Rende-
Grundstein in der Entwicklung der
rengines sowie dem entstehen experi-
zeitgenössischen Kunst gelegt, wel-
menteller Programme, wie Processing
cher das ästhetische Verständnis in
oder vvvv, etablierte sich die Genera-
Alltag und Kultur veränderte, ähnlich
tive Gestaltung sowohl bei Künstlern,
wie es bereits die Fotografie bewerk-
als auch bei Designern.11
stelligt hatte.
Durch die raschen technischen Weiterentwicklungen in den 80er und
90er Jahren, beispielsweise durch
den C64 oder den Macintosh ging
der Trend weg von den frühen Plotterzeichnungen. Das „Picture Processing“ wurde durch die inzwischen
vorhandenen grafischen Oberflächen
immer populärer.9 10
10
8
Vgl. Lieser, S. 22
9
Vgl. ebd., S. 30
10
Vgl. ebd., S. 32
11
Vgl. ebd., S. 34
Masao Komura, Makato Ohtake: Return to Square. 1967 - 68
Georg Nees: K27 Gewebe, Störung zentriert. 1965 - 68
10
// WAS IST
// PROCESSING?
Das Processing-Projekt wurde 2001
Programme, welche in Processing er-
das einbinden zusätzlicher Bibliothe-
von Ben Fry und Casey Reas am Mas-
stellt werden, tragen die Bezeichnung
ken (libraries) ergänzt bzw. erweitert
sachusetts Institute of Technology in
Sketch, da es im ursprünglichen Sinn
werden.15
Boston ins Leben gerufen.12
als Umgebung zur schnellen Erstel-
Diese Klassenbibliotheken zielen vor
Es ist eine objektorientierte und spezi-
lung digitaler programmierter Skiz-
allem auf Einsatzgebiete, wie Video,
ell für die Bereiche Simulation, Grafik
zen gedacht war. Daher heißt der
Grafik, Grafikformate, Sound, Ani-
und Animation entwickelte Program-
zentrale Ordner, in dem die eigenen
mation, Typographie, 3D, Simulati-
miersprache. Darüber hinaus besitzt
Programme gespeichert werden auch
on, Datenzugriff und -transfer sowie
sie eine eigene integrierte Entwick-
in der Regel „Sketchbook“.
Netzwerkprotokolle.16
lungsumgebung (Compiler).
Es ermöglicht dem Benutzer Interak-
Ein weiteres wichtiges Merkmal ist
Processing ist ein Open Source Pro-
tionen und visuelle Elemente zu pro-
das Processing nach dem Cross-Platt-
jekt, welches kostenfrei herunter-
grammieren. Dabei bedient es sowohl
form-Prinzip ausgelegt ist, d. h. der
geladen werden kann und ständig
Programmieranfänger sowie Fortge-
Quellcode kann auf allen Betriebs-
weiterentwickelt wird. Es basiert auf
schrittene. Besonders für Anfänger
systemen für die eine Java-Plattform
der Syntax einer stark vereinfach-
ist es attraktiv, da es nach einer kur-
existiert ausgeführt und in Webseiten
ten Version der Programmiersprache
zen Einführung bereits möglich ist,
eingebunden werden.17
Java und richtet sich in erster Linie an
ansprechenden Output zu generie-
2005 wurde Processing mit dem Prix
Gestalter, Künstler, Forscher und Pro-
ren. Durch seinen offenen Quellcode
Ars Electronica in der Kategorie Net
grammierer.
ist es modifizierbar und kann durch
Vision/Net Excellence ausgezeichnet.
13
11
14
12
Vgl. Bohnacker, Groß, Laub, S. 168
15
13
Vgl. Casey, Reas, S. 1
16
Vgl. ebd.
14
Vgl. Bohnacker, Groß, Laub, S. 168
17
Vgl. Bohnacker, Groß, Laub, S. 168
Processing-Icon
Entwicklungsumgebung von Processing
Vgl. http://de.wikipedia.org/wiki/Processing
11
// PROZESS UND HERAN GEHENSWEISE
12
Im ersten Schritt ging es darum, einen
besonders große Hilfestellung. Das
den Programmen, die dem Benutzer
Durch das Ausprobieren begriff ich die
Überblick über den Themenkomplex zu
war einerseits „Generative Gestal-
bei „Generative Gestaltung“ an die
Struktur der Programme, sodass ich
bekommen. Das heißt zum einen, ver-
tung – Entwerfen, Programmieren,
Hand gegeben werden.
als nächstes versuchte Code-Frag-
schiedene Literatur zu recherchieren,
Visualisieren“ von Hartmut Bohna-
Die Experimente sahen anfangs so
ment zu replizieren oder in andere
um die Sprache zu erlernen und zum
cker, Benedikt Groß und Julia Laub,
aus, dass ich die Werte der Varia-
Programm einzufügen.
anderen Programme anderer Künst-
da dort sehr viele Beispiel-Program-
blen variierte, um zu sehen, welche
Das Kopieren von „Codeschnipseln“
ler/ Programmierer anzuschauen, um
me vorgeführt und exerziert werden,
Auswirkungen diese Veränderungen
und das Schreiben eigener Program-
ein Gefühl und eine Vorstellung dafür
sodass man gut nachvollziehen kann,
auf den Output haben. Im nächsten
me ging dann ineinander über, sodass
zu bekommen, was machbar ist und
welche
letztend-
Schritt fügte ich weitere Variablen
die Grenze dazwischen verschwamm.
in welche Richtung die Experimente
lich für den jeweiligen Effekt aus-
hinzu oder entfernte diese. Das hatte
Natürlich entstanden nicht auf an-
gehen könnten.
schlaggebend
anderen
zur Folge, dass aus mehrdimensiona-
hieb zufriedenstellende Ergebnisse.
Danach folgte das Durcharbeiten
„generative art - a practical guide
len Programmen 2-dimensionale wur-
Ähnlich wie bei einer Bildbearbeitung,
verschiedenster
Diese
using processing“ von Matt Person,
den und umgekehrt.
betrachtet man sich dass vorläufige
stammten zum einen von der offizi-
da dieses Buch eine hervorragende
An diesem Punkt merkte ich, dass es
Ergebniss und bessert dann noch ein-
ellen Processing Internetseite (www.
Einführung in die Sprache gibt und
für mich erst mal ausreichen sollte,
mal nach. In diesem Fall dann mittels
processing.org), von „YouTube“ und
man nicht gleich mit überflüssigen In-
mit einer geringen Anzahl an Varia-
der veränderung von Parametern und
zu einem sehr großen Teil aus den re-
formationen überflutet wird.
blen zu Arbeiten, um den Überblick
Abstraktionsgrade.
cherchierten Büchern.
Bevor ich selber anfing Programme
nicht zu verlieren und ein brauchbares
solang bis man mit dem „Werkzeug“
Dabei waren mir zwei Bücher eine
zu schreiben, experimentierte ich mit
Ergebnis zu erhalten.
zufrieden ist.
Tutorials.
Programmzeilen
sind.
Zum
Dies
geschieht
12
// GLOSSAR
In diesem Fall wäre die grundlegende Fläche 500 Pixel breit und 1000 Pixel hoch,
die Hintergrundfarbe wäre weiß und jegliche Strichstärken hätten eine Dicke von 5
Pixel.18
TRANSFORMATIONEN:
SETUP AND DRAW:
Über den translate-, rotate- und scale-Befehl ist es möglich, das Koordinaten- Sys-
In Processing ist es möglich Animationen und Interaktionen zu erstellen. Elementar
tem zu verschieben, zu rotieren und zu skalieren. Dadurch ist es zum Beispiel möglich
dafür ist die Funktion draw(). Diese führt einen Code solange aus, bis er durch den
die Grundfläche bei sich selbst replizierenden Objekten, die durch ihre Replikation
Benutzer abgebrochen wird. Eine einfache draw()-Funktion sieht wie folgt aus:
größer werden, nicht verändern zu müssen, da man das Koordinatensystem einfach
void draw() {
kleiner skaliert und sich somit dem wachsenden Objekt anpasst.19
println(frameCount);
}
KLASSEN UND OBJEKTE:
Hierbei wird in der Console von Processing die stetig steigende Nummer des aktuellen Frames wiedergegeben und erst das Schließen des Programms bewirkt den Stop
dieser Ausgabe.
Mithilfe der setup()-Funktion ist es möglich einen Codeabschnitt genau einmal abarbeiten zu lassen. Häufig wird diese Funktion am Anfang eines Programms genutzt,
um die Größe der Fläche, deren Farbe o.ä. festzulegen. Eine solche Funktion wäre
folgendermaßen aufgebaut:
Klassen. Diese werden häufig in komplexen Programmen verwendet, um einen „sauberen“ Code zu gewährleisten. Klassen dienen dazu, bestimmte Probleme und Aufgaben zu lösen und wirken dabei als eine Art Archiv, in dem verschiedene Attribute
und Methoden gespeichert werden. Als Objekte werden dabei die Instanzen einer
jeden Klasse bezeichnet.20
Man kann das Prinzip sehr gut am folgenden Beispiel erklären:
Pedro ist ein Hund, er hat braunes Fell, wiegt 9 Kilo und ist 80 cm lang. Bernhard ist
ebenfalls ein Hund, hat aber weißes Fell, wiegt 40 Kilo und ist 120 cm lang. Somit
void setup() {
gehören sowohl Bernhard, wie auch Pedro der Klasse „Hund“ an, da man sie auf-
size (500, 1000);
grund der selben Eigenschaften kategorisieren kann: Farbe, Gewicht, Länge. Pedro
background (255);
ist dabei eine eigene Instanz und Bernhard ebenfalls.
strokeWeight (5);
}
13
In der objektorientierten Programmierung verwendet man oftmals sogenannte
18
Vgl. Bohnacker, Groß, Laub, S. 170
19
Vgl. ebd., S. 172
20
Vgl. http://de.wikipedia.org/wiki/Objektorientierte_Programmierung#Klassen
13
DATENTYPEN & VARIABLEN:
OPERATOREN UND MATHEMATIK:
Jedes Programm besitzt bestimmte Attribute, da ist es dem Menschen sehr ähn-
Ohne Operatoren wäre es nicht möglich komplexe Algorithmen aufzustellen bzw. zu
lich. Diese Attribute werden in sogenannten Variablen und Datentypen gespeichert.
lösen. Die wichtigsten hier zur Verfügung stehenden sind: +, -, *, / und %.
Ähnlich wie in den meisten anderen Programmiersprachen, existieren in Processing
Des Weiteren existieren eine Reihe von mathematischen Funktionen die bestimmte
folgende Datentypen:
Berechnungen erleichtern. Drei der bekanntesten sind:
char -
einzelne Zeichen
round -
rundet einen Zahlenwert auf oder ab
int (Integer) -
Ganzzahlen
random -
gerneriert einen Zufallswert
float -
Gleitkommazahlen,
sin/ cos/ tan -
berechnet den Sinus, Cosinus oder Tangens des jeweils boolean
-
wahr (true)/ falsch (false)
angegebenen Winkels 22
colors
-
Farben
String
-
Zeichenketten
MAUS UND TASTATUR:
Die Deklaration und Wertzuweisung geschieht grundsätzlich und unabhängig vom
Processing besitzt die Möglichkeit die Informationen von Eingabegeräten, wie z. B.
jeweiligen Datentyp nach folgendem Prinzip:
der Maus oder der Tastatur, abzufragen. Dazu gibt es festgelegte Variablen, über
die der aktuelle Status abgefragt werden kann:
Datentyp name = Wert;
mouseX/ mouseY -
An einem konkreten Beispiel sieht dies wie folgt aus:
zur Verfügung
mousePressed float a = 1,23;
Für jeden Datentyp wird eine bestimmte Menge an Speicher bereitgestellt. So wird
stellen immer die aktuelle X & Y Position der Maus -
wenn die Maustaste gedrückt ist, ist der Wert dieser Variable true
keyPressed -
zeigt an, ob eine Taste momentan gedrückt wird
key -
zeigt die zuletzt gedrückte Taste an 23
für den Datentyp boolean zum Beispiel nur 1 bit reserviert, für char bereits 16 bit und
für float bzw. int 32 bits. Für den Programmierer ist das insofern von Interesse, da
14
es gerade bei aufwendigen Programmen unabdingbar ist, für die jeweilige Variable
BEDINGUNGEN:
den möglichst kleinsten Speicherbedarf zu verwenden, um die Rechenprozesse nicht
In bestimmten Fällen kann es vorkommen, dass ein Codeblock nur dann ausgeführt
unnötig zu erschweren.21
werden soll, wenn eine bestimmte Bedingung erfüllt ist. In solchen Fällen wird 21
22
Vgl. Pearson, S. 32
23
Vgl. Bohnacker, Groß, Laub, S. 175
Vgl. Casey, Reas, S. 38.
14
häufig eine Anweisung eingesetzt. In Processing existieren 3 verschiedene Formen
An einem konkreten Beispiel mit einer Variablen i sehe der Code wie folgt aus:
von Bedingungen: if, if else und switch.
Ein kurzes Beispiel für eine if else Bedingung:
for (int i = 20; i < 150; i += 10) {
if (a == 1) {
fill (100, 0, 0);
rect (30, 20, 50, 55);
line ( i, 20, i, 180);
}
Diese 3 Zeilen erzeugen 13 senkrechte zueinander parallele Linien. i wird durch die
}
Schleife solange um 10 erhöht, bis es gleich oder größer wäre, als der Wert 150. Da-
else {
bei nimmt i den wert x1 und x2 der Linie in Anspruch. x1 und x2 sind dabei die X-Ko-
fill (0, 100, 0);
rect (30, 20, 50, 55);
ordinaten im Koordinatensystem und bilden den Start- und Endpunkt der Linie.25
}
FUNKTIONEN:
Beide Codezeilen die unter der if Bedingung stehen, werden nur dann ausgeführt,
Oftmals kommt es vor, dass Teile eines Programms mehrfach Verwendung finden.
wenn die Variable a den Wert 1 hat, andernfalls werden die beiden Codezeilen un-
In diesem Fall ist es Sinnvoll, den Programmteil in einer Funktion abzukapseln. Dazu
terhalb der else Bedingung ausgeführt. Im Falle das a = 1 ist, würde ein rotes Viereck
folgendes Beispiel:
gezeichnet, andernfalls ein grünes.24
void setup() {
translate (40, 15);
SCHLEIFEN:
line (20, 5, 20, 100);
Schleifen sind eine weitere wichtige Grundlage in der Programmierung. Sie dienen
line (40, 5, 40, 100);
dem wiederholten ausführen von Anweisungen. Währenddessen ist es möglich, die-
line (60, 5, 60, 100);
se Anweisungen zu modifizieren. Eine Schleife läuft solange, bis sie durch eine Ab-
line (80, 5, 80, 100);
bruchsbedingung gestoppt wird.
translate (20, 50);
Es existieren in Processing drei Arten von Schleifen: while, do… while und for.
line (20, 5, 20, 100);
Die for-Schleife hat folgenden Syntax:
line (40, 5, 40, 100);
line (60, 5, 60, 100);
line (80, 5, 80, 100);
for (Anfangsbedingung, Abbruchsbedingung, Erneuerung der Anfangsbedingung)
}
24
15
Vgl. Bohnacker, Groß, Laub, S. 175
25
Vgl. Pearson, S. 39
15
Dieses Programm zeichnet 4 Parallel nebeneinander liegende Linien und verschiebt
durch den translate Befehl das Koordinatensystem. Möchte man nun an dem Aussehen der Linien etwas verändern, müsste man den Code an 2 verschiedenen Stellen
ändern. Daher ist es sinnvoller diese Zeilen in einer Funktion zusammenzufassen:
void setup() {
translate (40, 15);
vierLinien();
translate (20, 50);
vierLinien();
}
void vierLinien() {
line (20, 5, 20, 100);
line (40, 5, 40, 100);
line (60, 5, 60, 100);
line (80, 5, 80, 100);
}
Nun kann die Funktion vierLinien an jeder beliebigen Stelle des Programms aufgerufen werden und sollte ein Änderungswunsch vorliegen, kann dieser ohne großen
Aufwand innerhalb der Funktion getätigt werden.26
26
16
Vgl. Bohnacker, Groß, Laub, S. 176
16
// PROJEKTSAMMLUNG
Die Projektsammlung beinhaltet 10 Programme und dient als repräsentative Übersicht. Zu jedem Programm existieren zwischen 4 und 9 Screenshots und ein kurzer
Einführungstext, welcher Auskunft über die Funktionen geben soll. Außerdem wird
bezug auf die ausschlaggebenden Zeilen des Programmcodes genommen und dessen Bedeutung erläutert. Die Programme sind gegliedert in 3 Themenfelder. Zu Beginn jedes Themenfelds steht eine kurze Erläuterung, auf der jeweils rechten Seite
sind Bilder zu sehen welche mir als Inspiration gedient haben. Beim Ersten handelt
es sich um das Thema Zeit. Das Zweite beschäftigt sich mit der Visualisierung akustischen Inputs. Das Dritte und letzte befasst sich mit natürlichen Vorgängen.
17
17
// ZEIT
„Die Zeit beschreibt die Abfolge von Ereignissen, hat also im Gegensatz zu anderen
physikalischen Größen eine eindeutige, unumkehrbare Richtung.“ 27
minimal by Roderick
ZIIIRO Titan
minimal by Roderick
ZIIIRO Eclipse
Das Thema Zeit und Uhren übt schon über einen längeren Zeitraum eine gewisse
Anziehungskraft auf mich aus. Insbesondere, da der aktuelle Trend dahin geht, die
klassische Armbanduhr wieder Salonfähig zu machen und sie mit Smartphones zu
verknüpfen (wie z. B. die SmartWatch). Außerdem ist es ein interessantes Medium
für neue Gestaltungsmöglichkeiten. Dabei ging es mir in erster Linie darum, weg von
den ursprünglichen Zahlen und Zeigern zu kommen.
Dutch design studio, GRO - kaleidoscope – time in colour
Sleek Watch Design by Denis Guidone
Reduzierung spielte für mich dabei eine sehr große Rolle, da mein ästhetisches Verständnis sehr durch Minimalismus geprägt wurde.
27
18
Vgl. http://de.wikipedia.org/wiki/Zeit
18
// ON_THE_LINE
Diese Uhr ist in der Lage, Millisekunden, Sekunden, Minuten und Stunden in Echtzeit
anzuzeigen. Diese werden in Form von Linien dargestellt, welche mit fortschreitender Zeit über den Bildschirm wandern. Die Strichstärke und Helligkeit gibt dabei
Auskunft über die Gewichtung der Zeit. Der dunkelste dünnste Strich stellt Millisekunden dar, der dickste hellste die Stunden.
20:56 Uhr
15:02 Uhr
20:56 Uhr
14:36 Uhr
Code:
float sec = map(second(), 0, 60, 0, width );
// sec als Variable des Datentyps float
wird hier der Sekundenwert überschrieben sowie die dazugehörigen
Start und Stop Punkte.28
line(height, sec, sec, sec);
// Die Linie berechnet sich dann aus
der Gesamthöhe der Skizze sowie den
3 sec werten.29
Syntax: line ( x1, y1, x2, y2 )
19
28
Vgl. http://processing.org/reference/float.html
28
Vgl. http://processing.org/reference/line_.html
19
// CENTURY_CIRCLE
Die hier dargestellte Uhr ähnelt in ihrer Form einer herkömmlichen am ehesten.
Sie besteht aus 6 Kreisen, jeder dieser Kreise stellt eine eigene Zeiteinheit zur Verfügung. Die Zeiteinheiten steigen in ihrer Wertigkeit von außen nach innen. Das heißt,
der äußerste Kreis stellt die Sekunden dar, der nächst kleinere die Minuten, dann die
Stunden. Danach schwenkt sie um auf den Tag, anhand dessen man den Fortschritt
des Monats erkennen kann. Als nächstes auf den Monat und zuletzt auf das Jahr.
Die jeweiligen Kreise sind von den Kontrasten her so abgesetzt, dass sie gut erkenn14:29 Uhr am 3. Juni 2014
bar sind.
Code:
arc ( width/2, height/2 ,width*4/5-5,widt-
// Ähnlich, wie bei der vorhergehenden
h*4/5-5,-PI/2.0, sec);
Uhr, wurde wieder eine Variable mit
der Bezeichnung sec erstellt. Dieses
Mal wird jedoch keine Linie, sondern
ein Bogen gezeichnet, um die runde
Form zu erhalten.30
14:30 Uhr am 3. Juni 2014
12:20 Uhr am 9. Juni 2014
Syntax: arc ( a, b, c, d, start, stop)
30
20
Vgl. http://processing.org/reference/arc_.html
20
// BAUHAUS
Die Bauhaus Uhr ist in dieser Kategorie das experimentellste Modell, da sie die Zeit
mittels geometrischer Formen darstellt und sich an den Grundformen des Bauhaus
orientiert.
Auch sie zeigt Millisekunden, Sekunden, Minuten und Stunden an. Die Darstellung
der Millisekunden stellt dabei eine abstrahierte Form einer Wanduhr mit Pendel dar,
sodass ein Gefühl entsteht, als ob das Pendel direkt und unaufhörlich auf einen zukommt. Dies soll den erschlagenden Charakter der Zeit visualisieren, wie sie unerbittlich fortschreitet, ohne dabei Rücksicht auf Verluste zu nehmen.
22:00 Uhr
14:48 Uhr
22:00 Uhr
14:48 Uhr
Die nächst größere Instanz – die Sekunde – wird durch ein immer wieder wachsendes Dreieck dargestellt. Die Minuten durch einen Kreis und den Stunden ist die Form
des Vierecks zugewiesen, da diese einem manchmal wie ein Klotz am Bein lasten.
Insbesondere bei dieser Variation entstehen mit bzw. durch die fortschreitende Zeit
immer wieder neue, interessante Formkombinationen.
Code:
triangle (width/2, 10, width/2-second()*5,
// Anders, als bei den anderen beiden
second()*10, width/2+second()*5, se-
Uhren, wird hier keine extra Variable
cond()*10);
für die unterschiedlichen Zeitgrößen
festgelegt, sondern direkt die Zeiten in
die Form eingebunden.31
Syntax: triangle ( x1, y1, x2, y2, x3, y3)
31
21
Vgl. http://processing.org/reference/triangle_.html
21
// AUDIOVISUALISIERUNG
„Audiovisualisierung ist die Berechnung von Grafiken, die aufgrund von Musikdaten
generiert werden.“ 32
Mit den Audiovisualisierungen habe ich mich einem weiteren Thema gewidmet, welches
Bioacoustic Phenomena by Paul Prudence
Rynth[n3] Paul Prudence
Parhelia by Paul Prudence
Rynth[n3] Paul Prudence
Parhelia by Paul Prudence
Rynth[n3] Paul Prudence
mich schon sehr lange in seinen Bann zieht. Der Gedanke, aus einem Musikstück ein Bild
zu generieren, welches bestimmte Charakteristiken widerspiegelt und somit ein zusammenhängendes Kunstwerk schafft, fasziniert mich dabei so sehr, dass ich es mit dieser Versuchsreihe selbst probieren wollte. Des Weiteren sind Musik/ Geräusche/ Laute
schon immer ein wichtiger Bestandteil des menschlichen Daseins gewesen und tragen im
Wesentlichen zur Kommunikation untereinander bei. So lässt sich darüber auch eine Art
Schulterschluss mit der Visuellen Kommunikation schließen.
Alle nun folgenden Programme nutzen
Danach sollte man im void setup() Be-
den MicIn Eingang (Mikrophon). Um
reich festlegen, welcher Input genutzt
diesen sich zu Nutze machen zu können,
wird und in welcher Qualität dies ge-
muss man die minim library importie-
schehen soll:
ren, dies ermöglichen die folgenden Zeilen, welche am Anfang der Programme
minim = new Minim (this);
eingefügt werden:
input = minim.getLineIn (Minim.STEREO,
512);
import ddf.minim.*;
Minim minim;
Als letztes werden die Daten dann mit-
AudioInput input;
tels dieses Befehls einer Variablen (dim)
des Datentyps float übergeben:
float dim = input.mix.level () 33
22
32
Vgl. http://de.wikipedia.org/wiki/Audiovisualisierung
33
Vgl. http://code.compartmental.net/tools/minim/
22
// MIC_TO_SCREEN
Dieses Programm war eines der vielseitigsten von allen, änderte oder ergänzte
man nur drei Zeilen vom Code kamen als Resultat völlig unterschiedliche Formen
heraus. Dabei ging es Hauptsächlich um die Lautstärke der Musik. Je lauter ein Ton
angeschlagen wurde, umso dunkler wurde der gezeichnete Strich und umso weiter
#1
#2
#3
#4
#5
#6
#7
#8
#9
entfernt war er vom Zentrum. Je leiser, umso heller. Anzumerken ist auch, dass die
Form sich nur entwickelte, wenn fortwährend ein Ton oder ein Musikstück gespielt
wurde. Sobald Stille einkehrte, verharrte auch die Form auf ihrer aktuellen Position.
Code:
rect (width/2, height/2, dim*100*noise
// Hier wird mit Hilfe der Variablen
(dim), dim*100*noise(dim));
dim, welche den AudioInput verarbeitet die Höhe und Breite des Vierecks
verändert. Um ein klareres Ergebnis
zu erhalten, wurde diese mit dem
Wert 100 multipliziert und eine noise
Funktion hinzugefügt. Die noise
funktion basiert auf dem PerlinNoise. Diese wurde zur Bildsynthese von
natürlichen Phänomenen, wie Wolken,
Wasser und Landschaften verwendet.
Sie erzeugt natürliche und harmonische Zahlenfolgen.
Syntax: rect ( a, b, c, d) 34
34
23
Vgl. http://processing.org/reference/rect_.html
23
// SPEAKER_GENERATOR
Nach dem eben vorgestellten Programm mit seinen recht scharfen Konturen, begann ich mich an weicheren Übergängen auszuprobieren. Das Programm erhielt
seinen Namen, da die Ergebnisse oftmals aussahen, wie die Membran von Lautsprechern. Das Grundprinzip funktioniert hier ähnlich, wie beim vorherigen Experiment. Die Lautstärke wird dabei als ausschlaggebendes Element benutzt, um unterschiedliche Varianzen zu erzeugen. Dieses Programm generiert zwar nur runde
Formen, jedoch bleibt es bei absoluter Stille nicht auf einer Stelle stehen, sondern
zeichnet weiter auf. Hinzu kommt, dass es sich diesmal nicht von innen heraus ge-
#1
#2
#3
#4
neriert, sondern von außen nach innen. Somit ist irgendwann der Punkt erreicht, an
dem es nicht mehr weiter geht bzw. nicht mehr sichtbar ist.
Code:
vertex(m+rr*cc,m+rr*ss,dim+rr*cc,
// Durch die Funktion vertex() werden
dim+rr*ss);
Vektoren erzeugt. Diese werden durch
die in Klammern stehenden Variablen
genauer definiert. In diesem Fall stehen die Variablen cc für einen Kosinuswert, ss für einen Sinuswert und rr für
Syntax: vertex ( x, y, u, v)
einen Radius. dim ist hier wieder die
x = X-Koordinate
Übersetzung des Mikrophoneingangs
y = Y-Koordinate
und bewirkt durch diesen Input eine
u = horizontale Koordinate für Tex-
ständige Variation und Veränderung
35
24
ture-Mapping
der Kreisgröße.35
v = vertikale Koordinate für Tex- ture-Mapping
Vgl. http://processing.org/reference/vertex_.html
24
// RORSCHACH
Bei Rorschach handelt es sich um eine Vorstufe des Speaker_Generators, daher sind
beide Arbeiten zusammenhängend zu betrachten. Ich habe dabei lange überlegt,
ob ich ein Programm streiche und ein anderes dafür rein nehme, doch empfand ich
den Output beider Experimente zu spannend und ästhetisch, als dass ich mich für
eines hätte entscheiden können. Auch Rorschach ist mittels der vertex() Funktion
entstanden. Jedoch ist die Formel zur Berechnung der Form wesentlich kürzer und
das, obwohl der Output wesentlich komplexer scheint.
#1
#2
#3
#4
Code:
(float i=dim;i<=TWO_PI;i+=k)
// Hierbei wurden die beiden Koor-
vertex(m+rr*cc,m+rr*ss);
dinaten u und v weggelassen. Dafür
wurde in dem oben stehenden Code
die Information zur Soundübertragung (dim) in die Formel zur Formberechnung übergeben. Daraus entsteht
Syntax: vertex ( x, y, u, v)
eine ständig fortwährende Metamor-
x = X-Koordinate
phose. Die Formen entstehen auch in
y = Y-Koordinate
totaler Stille, jedoch wird durch den
u = horizontale Koordinate für Tex-
Einfluss von Geräuschen der Entste-
36
25
ture-Mapping
v = vertikale Koordinate für Tex- hungsprozess gestört und es kommt
zu Abnormitäten in den Symmetrien.36
ture-Mapping
Vgl. http://processing.org/reference/vertex_.html
25
// CODE AND NATURE
„Natur bezeichnet in der westlichen Philosophie in der Regel das, was nicht vom Menschen geschaffen wurde. “
Auf dieses Thema bin ich über das Buch „THE NATURE OF CODE - SIMULATING NATURAL SYSTEM WITH PROCESSING“ von Daniel Shiffman aufmerksam geworden. Dabei
geht es, wie es der Titel schon verrät, um die Simulation von in der Natur vorkommender
Prozesse.
Da Fraktale in dieser Kategorie eine große Rolle spielen, soll hier kurz darauf eingegangen
werden, um bestimmte Begrifflichkeiten und Zusammenhänge zu erklären. Der Begriff
Fraktal wurde vom Mathematiker Benoît Mandelbrot 1975 geprägt und bezeichnet sowohl natürliche, wie auch künstliche Gebilde oder geometrische Muster. Im Allgemeinen
Baum
Wald
Eiskristall
Farn
besitzen diese Gebilde einen hohen Grad von Skaleninvarianz bzw. Selbstähnlichkeit.
Dies ist dann der Fall, wenn ein Objekt aus vermehrt kleineren Vervielfältigungen seiner
selbst besteht.
Fraktale sind häufig in der Natur zu finden. Allerdings ist die Stufenzahl der selbstähnlichen Strukturen begrenzt. Diese beträgt dann in der Regel lediglich drei bis fünf. Ein
typisches Beispiel aus der Biologie sind die fraktalen Strukturen von Romanesco-Gemüse
oder Farnen.
Aufgrund der Tatsache, dass sich sämtliche Funktionen von Transformationen grundsätzlich auf das gesamte Koordinatensystem beziehen, existiert in Processing die Möglichkeit, verschiedene Korrdinatensysteme voneinander abzugrenzen. Dadurch wird es
möglich, einzelne Transformationen eigenständig gegenüber dem jeweils anderen anzuwenden. Hierbei spielen 2 Funktionen eine entscheidende Rolle das ist zum einen pushMatrix() und zum anderen popMatrix().
26
pushMatrix() - Diese Funktion generiert
popMatrix() - Hiermit wird die mit pus-
eine neue Ebene in der Zeichenfläche
hMatrix() erzeugte Ebene mit demHin-
mit allen aktuellen Attributen vom Hin-
tergrund verknüpft. Nachdem popMat-
tergrund. Dazu gehören z.B. Position
rix() aufgerufen wurde zählen dieselben
und Rotation.
Bedingungen der Zeichenfläche, wie vor
37
37
Vgl. http://processing.org/reference/pushMatrix_.html
38
Vgl. http://processing.org/reference/popMatrix_.html
dem Aufruf von pushMatrix().38
26
// AST
Im Mittelpunkt bei Ast steht ein rekursiver Stängel, welcher im ersten Moment wie
ein Farn aussieht. Durch jeden Mausklick vervielfältigt er sich jedoch an sich selbst.
Aus jedem Blatt wird ein neuer Stängel. Dies funktioniert unendlich oft, jedoch wird
es für das menschliche Auge irgendwann nicht mehr Sichtbar und es kommt einem
vor, als ob aus dem vollbehangenen Farn ein kahler Ast geworden ist. Was jedoch
ein Trugbild ist. Wir können nur mit unseren Gegebenheiten nicht mehr in diese Dimension vordringen.
Stufe 1
Stufe 2
Stufe 3
Stufe 7
Code:
Blattansatz = map(log(norm(i, 0, bl)+0.1)/
// Berechnung der höhe des Blattansatzes
log(10.1), -1.10, 0.04, 0, hi);
Blattdicke = map(log(norm(i, 0, bl)+0.1)/
// Berechnung der Breite eines Blattes
log(10.1), -1.20, 0.04, 0, wi);
stengelstrke = map(hi-multi, 0, hi, 0.1,
// Berechnung für die dicke des Stengels
0.01*hi); //Berechnung für die dicke des
Stengels
rect(-stengelstrke/2, 0, stengelstrke/2,
// Berechnung der Stengelform
Blattansatz-multi);
Syntax: map(value, start1, stop1, start2, stop2) 39
39
27
Vgl. http://processing.org/reference/map_.html
27
// GROW
Grow ist eine Animation, welche sehr ornamentale Muster hervorbringt. Es spielt
dabei fortwährend eine Schleife ab, bei der es erst aus sich heraus wächst, um
dann wieder in sich „zusammenzufallen“. Die Strukturen sind durch das editieren
bestimmter Variablen sehr variantenreich.
Code:
#2
#3
#4
#5
#6
#7
#8
#9
// Dieser Teil des Codes ist die Grundstruk-
pushMatrix();
tur der Hauptfunktion des Programms. Hier
rotate(+stufen);
wird ein Ast ähnliches Konstrukt gebildet,
line(0, 0, 0, -anzahl);
durch dessen Verdopplung und Rotation
translate(0, -anzahl);
es aus sich heraus wächst. Verantwortlich
zweig(anzahl);
dafür ist u. a. wieder push- und popMatrix
popMatrix();
Syntax: pushMatrix()
#1
() Funktion.
40
popMatrix() 41
40
41
28
Vgl. http://processing.org/reference/pushMatrix_.html
Vgl. http://processing.org/reference/popMatrix_.html
28
// ENDLOS
Die passende Redewendung, welche dieses Programm am besten beschreibt lautet
wahrscheinlich: „Man sieht den Wald vor lauter Bäumen nicht“. Vor dem Auge des
Benutzers wächst unaufhörlich ein Wald zusammen, bestehend aus unterschiedlich
großen Bäumen. Dabei verblassen die hintenstehenden immer mehr, um somit eine
Tiefe im Bild zu erzeugen.
#1
#2
#3
#4
Code:
pushMatrix();
// Ähnlich dem obigen Code geschieht
{
auch hier wieder das ausschlaggebende in
translate(0,-height/3);
diesen Programm Zeilen. Dabei geht es um
rotate(random(-PI/4.5,PI/4.5));
die generierung der Bäume. Wurde beim
scale(random(0.35,0.65));
oberen Beispiel diese Zeilen 2 mal abgeru-
ast(stamm+int(random(1,3)));
fen, geschieht es hier bereits 5 mal. Je öfter
}
diese Zeile ausgeführt wird umso mehr
popMatrix();
Verästelungen in den Baumkronen gibt es.
Allerdings werden die Berechnungen auch
dementsprechend langwieriger.
Dadurch das in diesem Programm keine
abbruch Bedingung gestellt wird, werden
die Bäume in einer Endlosschleife generiert.
Syntax: pushMatrix()
42
popMatrix() 43
29
42
Vgl. http://processing.org/reference/pushMatrix_.html
43
Vgl. http://processing.org/reference/popMatrix_.html
29
// RE_KUR_SIV
Durch das bewegen des Mauszeigers innerhalb der Zeichenfläche, ermöglicht dieses
Programm dem Benutzer selber Einfluss auf die Form zu nehmen. Die Form an sich
besteht aus acht rekursiven Elementen, die sich zum Teil überlagen und 360° um den
Mittelpunkt drehen.
#1
#2
#3
#4
#5
#6
#7
#8
#9
Code:
rotx += (radians(180./height*-
// Übergabe der Information der X-Achse
mouseX)-rotx)/verz;
des Mauszeigers.
roty += (radians(180./height*mouseY)-ro-
// Übergabe der Information der Y-Achse
ty)/verz;
des Mauszeigers. Die Funktion Radians
wandelt dabei eine bestimmt Gradzahl in
einen Radianten um. Der Radiant bestimmt
die Größe eines ebenen Winkels.
Syntax: radians(degrees)
44
44
30
Vgl. http://processing.org/reference/radians_.html
30
// FAZIT
Allgemein lässt sich feststellen das
nis erzielte, hatte man schon wieder
Insbesondere die vielen, recht ma-
Output, welcher vielseitig einsetzbar
generative Gestaltung in weiten Tei-
vergessen, wie es vorher aufgebaut
thematischen, Berechnungen stellten
ist. Sei es als Animation, als statische
len der „Kreativszene“ angekommen
war. Ich hatte oftmals das Gefühl,
eine gewisse Hürde dar, gerade wenn
Grafik oder aber möglicherweise auch
ist. Dank des Internets finden sich vie-
dass der Kniff in der Programmierung
man sich damit das letzte Mal wäh-
als Projektion.
le Foren und Communitys in denen ein
mit Processing darin liegt, Chaos ins
rend des Abiturs beschäftigt hat. Der
Des Weiteren empfand ich es als eine
reger Gedanken- und Informations-
System zu bringen oder besser ge-
große Vorteil ist jedoch, dass es viele
wichtige Lektion einen Einblick in die
austausch stattfindet. Es entstehen
sagt, Chaos mit System zu erschaf-
Berechnungen gegeben sind und man
Welt der Programmierung zu erhal-
sowohl Kunstwerke, Architektur- und
fen. Meine Metapher der Sackgasse
sich somit weniger mit dem Aufstellen
ten, da die wenigsten Grafiker auch
3D-Modelle, Schriften, Medieninstal-
aus der Einführung hat sich dahin
beschäftigen muss, sondern viel mehr
in der Lage sind Programme oder
lationen, Animationen wie auch Infor-
gehend verändert, dass es viel mehr
mit dem Verändern dieser.
beispielsweise Internetseiten selber
mations- und Kommunikationsgrafi-
wie ein Dschungel ist und man sich
Allerdings hat sich noch etwas verän-
zu schreiben. Bei diesem Projekt war
ken.
von einer Liane zur nächsten hangelt,
dert: Bin ich anfangs noch davon aus-
man Grafiker und Programmierer in
Wenn ich auf meine Experimente zu-
immer tiefer in den Wald hinein verirrt
gegangen nicht „das eine Ergebnis“
Personalunion und hatte direkten Ein-
rückblicke, muss ich feststellen, dass
und es zunehmend schwieriger wird,
am Ende zu haben, muss ich feststel-
fluss auf seine eigenen Werkzeuge.
es äußerst schwierig war, diese zu do-
einen Ausweg zu finden.
len, dass trotz des vielen Stückwerks
Ich denke das diese Form der Ge-
kumentieren. Man ist währenddessen
Es war relativ kompliziert, hinterher
ein ganzes Ergebnis entstanden ist.
staltung in den kommenden Jahren,
in einem „flow“ und sobald man et-
noch einmal nachzuvollziehen, wie ich
Für mich ist eine Art Toolbox der Inspi-
ähnlich wie Foto, Video und digitale
was veränderte, ohne dies schriftlich
ich auf bestimmte Ergebnisse gekom-
ration entstanden. Jedes einzelne die-
Bilbearbeitung es in der Vergangen-
festzuhalten und ein anderes Ergeb-
men bin.
ser Programme liefert einen anderen
heit vorgemacht haben, ein fester Bestandteil werden wird.
31
31
// QUELLEN
// BILDVERZEICHNIS
Bohnacker, Hartmut; Groß, Benedikt; Laub, Julia; Lazzeroni, Claudius (Hrsg.):
S. 11: #1, #2, #3, #4 #5 Quelle: Reas, Casey & McWilliams, Chandler: FORM + CODE - In De-
GENERATIVE GESTALTUNG - Entwerfen Programmieren Visualisieren, Mainz:
sign, Art and Architecture;
Verlag Herrmann Schmidt 2010.
S. 15: Quelle: http://www.fontblog.de/premiere-ff-mark-geometrische-sans-fuer-unsere-zeit;
S. 17: Quelle: Hartmut Bohnacker, Julia Laub, Benedikt Groß, Claudius Lazzeroni (2009) Buch
Lieser, Wolf: DIGITAL ART -NEUE WEGE IN DER KUNST, Potsdam: Tandem Verlag GmbH
„Generative Gestaltung“, www.generative-gestaltung.de;
2010.
S. 19: Quelle: Lieser, Wolf: DIGITAL ART -NEUE WEGE IN DER KUNST, Potsdam: Tandem
Verlag GmbH 2010;
Pearson, Matt: generative art - a practical guide using processing, New York:
S. 20: Quelle: Lieser, Wolf: DIGITAL ART -NEUE WEGE IN DER KUNST, Potsdam: Tandem
Manning Publications Co. 2011.
Verlag GmbH 2010;
S. 21: Quelle: Lieser, Wolf: DIGITAL ART -NEUE WEGE IN DER KUNST, Potsdam: Tandem
Reas, Casey & Fry, Ben: Processing - A Programming Handbook for Designers and Artists,
Verlag GmbH 2010;
Massachusetts: The MIT Press 2007.
S. 37: minimal by Roderick, Quelle: http://www.dejoost.com/minimal-analog-watch-design/;
Dutch design studio, GRO - kaleidoscope – time in colour, Quelle:
Shiffman, Daniel: THE NATURE OF CODE - SIMULATING NATURAL SYSTEM WITH PROCES-
http://www.designsojourn.com/once-upon-a-time-experimental-watch-designs/;
SING, Leipzig: Amazon 2012.
Sleek Watch Design by Denis Guidone, Quelle: http://butilikethat.com/sleek-watch-design-created-by-italian/;
www.processing.org/reference - letzter Zugriff: 9. Juni 2014, 19:46 Uhr.
Ziiiro Eclipse, Quelle: http://www.ziiiro.com/images/products/Eclipse_black.png;
Ziiiro Titan, Quelle: http://www.ziiiro.com/images/products/Titan_black_front.png;
http://de.wikipedia.org/wiki/Fraktal - letzter Zugriff: 9. Juni 2014, 19:46 Uhr.
S. 45: Bioacoustic Phenomena, Parhelia, Rynth[n3], Quelle: http://www.paulprudence.com/
S. 53: Baum, Quelle: http://www.foto-repro-thugutt.de/wp-content/uploads/2008/08/
http://de.wikipedia.org/wiki/Natur - letzter Zugriff: 9. Juni 2014, 19:46 Uhr.
baum-nr1-1000p.jpg
Wald, Quelle: http://www.redhotschilly.de/assets/images/wald_LANGBOGENFREUNDE.jpg
http://de.wikipedia.org/wiki/Zeit - letzter Zugriff: 9. Juni 2014, 19:47 Uhr.
Eiskristall, Quelle: http://punkt4.files.wordpress.com/2012/01/eiskristall.jpg
Farn, Quelle: http://foto.mein-schoener-garten.de/userimages/41775/or/1340636/Farn.jpg
http://www.fontblog.de/premiere-ff-mark-geometrische-sans-fuer-unsere-zeit - letzter
Zugriff: 9. Juni 2014, 19:47 Uhr.
32
32