1.1 Creative Programming


Skript-Website zur Lehrveranstaltung Creative Programming
Nr. 470.002, Vorlesung und Übung
Universität für künstlerische und industrielle Gestaltung, Linz
Abteilung für Mediengestaltung Lehramt
Dozent: Andreas Pirchner
Wintersemester 2016/17


Die LV gliedert sich in folgende Termine:
Einheit 1: Grundlagen
Einheit 2: Visuals
Einheit 3: Sound
Einheit 4: Projektbesprechungen / Coaching
Einheit 5: Präsentationen

Die im Skript entwickelten Programmbeispiele stehen später zum Download bereit:
Kapitel 1- Grundlagen
Kapitel 2 – Visuals
Kapitel 3 – Sound


Einleitung

Programmieren im Sinne der Informatik bedeutet ein möglichst effizientes Formulieren von Anweisungen an die Rechenmaschine (vgl. Pearson, 2011, S. xviii):

Ein Algorithmus ist eine Handlungsanweisung, wie mittels einer endlichen Anzahl von Schritten ein bestehender Input in einen angestrebten Output überführt werden kann: Mithilfe von Algorithmen werden vordefinierte Probleme gelöst. Stalder (2016, S. 167).

Experimentelles Programmieren kann jedoch darauf abzielen, mit den klassischen Ansprüchen der Informatik zu brechen und Code mit Hinblick auf seinen ästhetischen audiovisuellen Output zu erstellen. Zufallsfunktionen aber auch Umweltreize oder menschliche Interaktion, die durch Computer-Vision oder andere Sensoren registriert werden, können die Determiniertheit von Programmabläufen durchbrechen und immer neue Variationen in den Ergebnissen von Code hervorbringen.

"… the designer is no longer making choices about a single, final object but creating a matrix encompassing an entire population of possible designs. This is a move from thinking about an object to thinking about a field of infinite options" Reas, 2010, S. 93

Interruptions (Vera Molnar, Plotter Drawing, 1968/69)

Kenntnisse der Programmierung sind daher seit geraumer Zeit nicht mehr nur für Software-Entwickler interessant, sondern haben sich in zahlreichen Arbeiten als kreatives Werkzeug und Inspirationsquelle für künstlerischen Ausdruck erwiesen. Bekannt geworden als ›creative coding‹, nutzen KünstlerInnen, DesignerInnen, ArchitektInnen und MusikerInnen derartige Strategien in – oft selbst entwickelten – Programmen, um ihren kreativen Ausdruck originär zu erweitern. Andererseits war es immer wieder eines der Bestreben von künstlerischem Handeln, menschliche Lebensrealität in Werken zu thematisieren. Algorithmen mit Namen wie Page Rank (Google), EdgeRank (Facebook), „intelligente“ Chat Bots in Call Centern oder beispielsweise Nachrichtentexte, die von Programmen nach Prinzipien der „Narrative Science“ aus Daten erstellt wurden, prägen unsere Lebensrealität in der digitalen und physikalischen Welt. Nichts spricht dagegen, diese Lebensrealität Teil des künstlerischen Ausdrucks werden zu lassen. Der Code selbst hat keine Bedeutung (oder eine ganz eigene), er dient der Lösung eben einer Aufgabenstellung oder ist jener Code, der zur Übermittlung von Information verwendet wird. Er spricht in seiner reinen Form keine bestimmte Wahrnehmungsmodalität an, kann sich in visuellen oder auditiven Artefakten zeigen oder von KünstlerInnen gezielt und wiederum codiert ("Parameter-Mapping") übersetzt werden.

Manfred Mohr, P-197/K, Acrylic on canvas, 1977

Wenn → Manfred Mohr bereits seit den 1960er Jahren Zufallsprozesse heranzieht, um zu visuellen Strukturen zu gelangen, so sind diese Prozesse in erster Linie mathematische Modelle, die einen Prozess beschreiben, dessen Zahlen-Output nicht auf eine bestimmte menschliche Wahrnehmungsdomäne gerichtet ist. Erst Mohrs künstlerische Übersetzung macht daraus ein Bild. Ästhetische Bedeutung wird in diesem Kontext von KünstlerInnen in den Algorithmus oder das mathematische Modell gelegt und sein Output im künstlerischen Sinne wahrnehmungsgerichtet geformt. Hierzu wird der Algorithmus und der Code bewusst gestaltet, er ist der zentrale Ort des künstlerischen Handelns.

Warum also selbst Programmieren?

  • Das Material und seiner Verarbeitung kann Quelle für Inspiration sein, in diesem Fall die „Material“ des Codes. Kennt man das Material nicht, so lassen sich seine Möglichkeiten nur erahnen.
  • Kunst sucht mitunter neues, bisher unbekanntes. Für viele Anwendungen (Installationen, Interaktive Projekte, …) gibt es keine bestehenden Anwendungen, mit denen sie sich adäquat Realisieren ließen. Einzigartige Konzepte verlangen einzigartige Umsetzungen.
  • ›Fertige‹ Lösungen zu verwenden kann mitunter den Bewegungsspielraum für den Gestaltungsdrang einschränken, da diese Lösungen stets eigene Formungsbedingungen in das Projekt einbringen.
  • Das Verständnis um die Grundlegende Logik von Programmierung lässt sich leicht auf andere Sprachen (bspw. JavScript, PHP, Java, C) übertragen um diese zu erlernen/verwenden.

Einige random() Beispiele aus völlig verschiedenen Anwendungsbereichen

Test Pattern (enhanced version) (Ryoji Ikeda , 2011) „test pattern is a system that converts any type of data (text, sounds, photos and movies) into barcode patterns and binary patterns of 0s and 1s. Through its application, the project aims to examine the relationship between critical points of device performance and the threshold of human perception.“


What Is Life ? (Simon Katan, 2012) „What Is Life ? (2012) is a computer visual and synthesised sound composition for live performance. The piece uses a custom visual sequencer called SoundLens which comprises an OpenFrameworks visual interface and an OSC controlled SuperCollider patch. These combine to imply an analogue between a simulated visual focal effect, reminiscent of a camera lens or microscope, and auditory depth of field. Into this world are placed multiple copies of a sound producing mechanical object. Inspired by a coincidental similarity between certain arrangements of these objects and the double helix structure of DNA, the piece takes its title from the name of Erwin Shrodinger’s book in which he develops the concept of a complex molecule with the genetic code for living organisms. Nevertheless, there is a deeper connection between title and piece in that it progresses solely through the copying and mutation of its own material.“


Cube with Magic Ribbons (Simon Katan, 2012) „Cube with Magic Ribbons is a computer visual and synthesised sound composition for live performance. The piece takes its title from a drawing of M.C.Escher which is rich with contradictory perspectives but it is also inspired by the wrapped spaces found in the two dimensional graphics of early computer games such as Asteroids and Pac-Man. It was created using a custom visual sequencer SoundCircuit, which rather than employing a conventional DAW layout, allows multiple virtual tape-heads to travel through a two-dimensional wrapped space along tracks that can be freely inter-connected. As the tape-heads travel through the resultant network, the topological layout of the tracks comes to directly influence the macro form of the music. Furthermore, as the piece unfolds the nature of this already confusing space reveals itself to be increasingly elastic and complex, yet inexorably intertwined with the musical form.“


Metastaseis (Iannis Xenakis, 1954)


cf. city flows (Till Nagel und Christopher Pietsch, FH Potsdam, 2016) „cf. city flows is a comparative visualization environment of urban bike mobility designed to help citizens casually analyze three bike-sharing systems in the context of a public exhibition space. Three high-resolution screens show the space of flows of New York City, Berlin, and London through visualizing bike journeys“


Sisyphus (Bruce Shapiro, 2016) „Cube with Magic Ribbons is a computer visual and synthesised sound composition for live performance. The piece takes its title from a drawing of M.C.Escher which is rich with contradictory perspectives but it is also inspired by the wrapped spaces found in the two dimensional graphics of early computer games such as Asteroids and Pac-Man. It was created using a custom visual sequencer SoundCircuit, which rather than employing a conventional DAW layout, allows multiple virtual tape-heads to travel through a two-dimensional wrapped space along tracks that can be freely inter-connected. As the tape-heads travel through the resultant network, the topological layout of the tracks comes to directly influence the macro form of the music. Furthermore, as the piece unfolds the nature of this already confusing space reveals itself to be increasingly elastic and complex, yet inexorably intertwined with the musical form.“


DEEP WEB (Christopher Bauder, Robert Henke) „Deep Web is a monumental immersive audiovisual installation and live performance created by light artist Christopher Bauder and composer and musician Robert Henke. Presented in enormous pitch dark indoor spaces, Deep Web plunges the audience into a ballet of iridescent kinetic light and surround sound. The work was presented as a preview at CTM 2016 Festival Berlin and will be followed by its original presentation at the Festival of Lights Lyon in December 2016.“