Konzept für die Installation
Ich wurde vom esc medien kunst labor dazu eingeladen mit meinem Projekt Teil der Ausstellung "Who is playing with us?" zu werden. Dafür wollte ich eine eigene Installation entwerfen, um den Plotter möglichst interaktiv zu präsentieren.
Eine erste Idee war es, die Besucher den Plotter direkt steuern zu lassen. Weil ich dafür allerdings eine Art Controller entwickeln hätte müssen, habe ich diese Idee schnell wieder verworfen. Stattdessen wollte ich mich auf einige Kernaspekte konzentrieren.
Die Installation sollte:
- interaktiv
- leicht verständlich
- schnell (die Ergebnisse sollten innerhalb einer Runde in der Ausstellung sichtbar sein)
- abstrakt
sein.
Nach einigen Überlegungen habe ich mich schlussendlich festgelegt: Der Plotter soll Bilder von der Ausstellung machen und die dann zeichnen. So werden die Zuschauer Teil vom Kunstwerk und können damit interagieren. Dafür musste der Zeitraum, in der ein Bild entsteht allerdings möglichst kurz sein – sonst wäre der eigene Einfluss auf das Bild nicht mehr nachvollziehbar. Dieses Zeitlimit beschränkte also auch die Größe eines Bildes. Schlussendlich entschied ich in 5-Minuten-Abständen Bilder zu machen und auf einen großen Bogen zu plotten. Dadurch wurde Zeit zu einem weiteren Faktor des Werkes – man sieht die Veränderungen im Laufe eines Tages.
Von Pixeln zu Vektoren
Die Grundidee ist simpel, aber es erfordert die Umwandlung eines Pixelbildes in eine Vektorgrafik. Dafür gibt es viele unterschiedliche Möglichkeiten. Zuerst wollte ich eine typische Liniengrafik machen, wie diese hier:

Ich fand den Stil dann aber doch zu mechanisch. Ich wollte, dass es organischer, fast menschengemacht wirkt. Daraufhin habe ich mit unterschiedlichen Algorithmen herumprobiert. Sehr interessant fand ich auch flow-fields:

Damit habe ich auch selber Bilder gemacht. Praktisch daran war, dass ich den Algorithmus als Plugin zu vpype verwenden konnte. Nach einigen Versuchen wurde mir allerdings klar, dass die Bilder zu viele Linien hatten – ein Bild hätte ungefähr 10 Minuten zum plotten gedauert. Das war zu lange. Mein Ziel war ungefähr die Hälfte.
Schlussendlich fand ich einen Algorithmus, der wie eine schnelle Schraffurzeichnung aussah. Der Stil gefiel mir sofort und ich hatte auch die Möglichkeit Noise einzubauen, um die Bilder durch zufällige Abweichungen noch natürlicher aussehen zu lassen. Allerdings war die Zeit, die ich pro Bild brauchte, immer noch zu lange. Das Stiftheben und -senken mit jeder Linie verlangsamte den Prozess wesentlich. Um das Plotten weiter zu optimieren, entschloss ich Optimierungsfunktionen von vpype zu verwenden: Mit Linemerge konnte ich die einzelnen kurzen Linien zu längeren Linien verbinden. Dadurch musste ich den Stift nicht mehr so häufig heben und konnte viel schneller zeichnen. Allerdings sieht die Zeichnung nicht mehr so sauber aus. Da mir die Interaktion zwischen Mensch und Maschine jedoch wichtiger war als das einzelne Bild, hielt ich das für einen guten Kompromiss. Um die Zeit weiter zu reduzieren, habe ich zusätzlich noch die Funktion linesort verwendet. Diese Funktion optimiert die Reihenfolge der einzelnen Linien auf die kürzeste Strecke.
vpype verwende ich auch, um die einzelnen Bilder auf die richtige Größe zu bringen, auf der Zeichenfläche zu platzieren, und die Vektordaten in G-Code zu übersetzen.
Bild machen
Der Umwandlungsalgorithmus ist aber eigentlich erst der zweite Abschnitt des Prozesses. Zuerst muss ein Foto aufgenommen werden. Dafür habe ich eine Webcam gekauft. Ursprünglich war die dazu gedacht den Plotter zu dokumentieren und Videos vom Plotprozess aufzunehmen. Es ist eine recht günstige Kamera mit Ringlicht um die Linse. Damit ich den Ablauf automatisieren kann, benötige ich allerdings eine Möglichkeit die Kamera über die Command-Line anzusprechen. Dafür habe ich ffmpeg verwendet – ein Command-Line-Tool zur Audio- und Videobearbeitung. ffmpeg ist quasi ein Schweizer Taschenmesser, wenn es darum geht, Videodaten zu verarbeiten. Und genau das mache ich mit meiner Webcam. Über den USB-Port angeschlossen kann man den Video-Stream von der Kamera abfragen und bestimmte Frames als Bild speichern.
Der Kern der Sache
Als "Gehirn" der ganzen Installation habe ich einen Raspberry Pi verwendet. Der ist klein und konnte gut versteckt bzw. unauffällig bei der Elektronik untergebracht werden. Als Betriebssystem habe ich Raspberry Pi OS mit Sway als Window-Manager genutzt. Das ist ein kompaktes System, das mir die Möglichkeit bot, Programme bequem über die Command-Line zu nutzen und die Benutzeroberfläche nach eigenen Bedürfnissen zu gestalten.
Alles zusammenschnüren
Ich habe also eine Möglichkeit ein Bild zu machen, die Pixel in Vektorgrafiken umzuwandeln und auf einer Zeichenfläche zu platzieren. Was aber noch fehlt, ist ein Werkzeug, um all diese Arbeitsschritte zusammenzuführen. Dafür hat Alexander Kremser mehrere Shell-Scripts verfasst, mit welchen dieser Prozess automatisiert wird. Eines der Scripts öffnet außerdem einen Kommunikationskanal zum Plotter, auf dem die Maschinenbefehle übertragen werden und feedback vom Plotter empfangen wird.
Aufbau und Interface
Die Installation hat einen prominenten Platz direkt bei einem der großen Schaufenster bekommen. Der Plotter war also sowohl vom inneren als auch von außen gut sichtbar. Damit alle Betrachter erkennen können, was gezeichnet wird, habe ich mich dazu entschieden den Plotter auf einer großen Siebdruckplatte zu montieren in ungefähr 40 cm Höhe in die Schaufensternische zu stellen. Er wurde auf einigen Ytong-Steinen aufgebahrt.
Die Kamera wollte ich zuerst mit Hilfe eines Stativs zentriert über dem Plotter befestigen. Nach einigen Versuchen musste ich aber feststellen, dass die Kamera zu präsent war und man nicht mehr auf den Plotter geachtet hat. Nach einigen Versuchen habe ich auch festgestellt, dass eine Art Interface nötig ist, um zu kommunizieren, was genau passiert. Ohne Kontext war nicht klar, dass die Zuschauer Fotografiert werden. Deshalb habe ich kurzerhand einen Computerbildschirm verwendet, ihn vertikal ausgerichtet auf ein Podest gestellt und die Kamera am oberen Rand platziert. Auf dem Bildschirm konnten wir den Videostream der Kamera darstellen, damit die Betrachter wie in einem Spiegel sehen, was die Kamera einfängt. Da wir jetzt den Bildschirm zur Verfügung hatten, habe ich mich dazu entschlossen mehr vom Prozess zu zeigen. Alex hat ein minimalistisches Interface mithilfe der Command-Line gebaut, wodurch die Zuschauer über die einzelnen Schritte im Prozess informiert wurden. Besonders wichtig waren ein Timer für das nächste Bild und ein Shutter-Effekt, damit die Leute bemerken, wann ein Bild gemacht wurde. Dieses Interface hat sich im Laufe der Ausstellung gewandelt, da wir es laufend verbessert haben.
Auch die Beleuchtung der Szene hat sich verändert. Es war eine große Herausforderung, immer gute Lichtbedingungen zu schaffen. Denn die Lichtverhältnisse haben sich im Laufe des Tages stark verändert. Der Vektorisierungs-Algorithmus erfordert genügend Kontrast – zu helle oder zu dunkle Bilder werden schnell unkenntlich. Zudem bieten die Schaufenster im esc die Möglichkeit sie mittels Fernbedienung zu Tönen und undurchsichtig zu machen. Das hat jedoch auch Einfuss auf die Lichtdurchlässigkeit. Weil ich immer mit Transparenten Fenstern gearbeitet habe, war ich bei der Vernissage überrascht durch die getönten Fenster und dadurch dunklere Lichtverhältnisse – was auch an so manchem Plot zu sehen ist.
Einen besonderen Fokus habe ich auch auf die "usability" der Installation gelegt. Da ich ja nicht immer dort sein konnte, um die Installation ein- und wieder auszuschalten, war es wichtig, dass es für die Betreuer der Ausstellung möglichst leicht ist. Dafür haben wir sichergestellt, dass die gesamte Elektronik an einem Stromverteiler hängt. Sobald Strom fließt, fährt der Raspberry Pi automatisch hoch und startet das die Command-Line und das Shellscript automatisch. Sobald alle 56 Bilder fertig gezeichnet sind fährt der Raspberry Pi auch automatisch wieder herunter. Dann muss nur noch der Schalter am Verteile ausgeschalten werden. Das Einzige, was man die betreuende Person noch manuell tun muss, ist das Papier und ab und zu den Stift auszutauschen.
Wenn der Plotter angehalten werden sollte, bevor das letzte Bild gezeichnet wurde, musste man den laufenden Prozess mit dem Tastatur-Kürzel Ctrl + C
beenden. Wenn man später wieder fortsetzen wollte, konnte man das Script in der Command-Line aufrufen und als Parameter die Zahl des letzten gezeichneten Bildes mitgeben. Dann setzte es bei dem nächsten Bild wieder fort. Das war besonders wichtig – ohne Parameter würde es beim ersten Bild auf dem Bogen von neuem Starten. Da diese Schritte grundlegendes Wissen über die Command-Line erforderten, war es nur wenigen Personen erlaubt.