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

Make Love, No War

1. Einleitung

Im Rahmen dieses Projekts habe ich eine generative, interaktive Installation namens „Biorhythm Collective„ entwickelt. Die Arbeit verbindet reale körperliche Messwerte, darunter Herzfrequenz, Sauerstoffsättigung und Bewegung, mit einer sich in Echtzeit entwickelnden visuellen Komposition. Ziel war es, einen Biorhythmus nicht nur zu messen, sondern sichtbar und erlebbar zu machen: Jeder Herzschlag hinterlässt eine bleibende Spur im Bild, jede Bewegung verändert die Farbwelt der gesamten Arbeit.

Die erste Idee zu diesem Thema entstand im Kurs „Museum Prototyping“ bei Professor Reto Wettach. Der ursprüngliche Ansatz war ein Dating-Konzept: Zwei fremde Personen sollten jeweils an einen eigenen Sensor-Controller angeschlossen werden, sodass aus den gemeinsam erfassten Vitaldaten ein gemeinsames Porträt der beiden entsteht, ein visuelles Doppelporträt zweier Menschen, die sich vorher nicht kannten. Im Laufe der praktischen Umsetzung stellte sich heraus, dass der Bau und die zuverlässige Anbindung eines zweiten, baugleichen Controllers einen erheblichen zusätzlichen Hardwareaufwand bedeutet hätten. Da ich zu diesem Zeitpunkt zum ersten Mal überhaupt mit Hardware gearbeitet habe, was schon für sich genommen eine große Herausforderung war, entschied ich mich, das Konzept auf einen einzelnen Controller und eine einzelne Person zu reduzieren. Aus der ursprünglichen Zwei-Personen-Idee wurde so die vorliegende Einzelperson-Installation „Biorhythm Collective„.

Ausgangspunkt für die generativen Prinzipien war die Webseite generative-gestaltung.de von Bohnacker, Groß, Laub und Lazzeroni (http://www.generative-gestaltung.de/2/),,) von der mehrere grundlegende p5.js-Beispiele übernommen und für dieses Projekt angepasst wurden. Im Laufe der Arbeit wurden diese Vorlagen zunehmend durch eigene, speziell für die Installation entwickelte Verfahren ersetzt oder ergänzt.

Diese Dokumentation beschreibt das Konzept, den technischen Aufbau und die visuelle Umsetzung der Installation sowie den Entwicklungsprozess mit den dabei aufgetretenen Herausforderungen.

2. Konzept

Im Zentrum der Arbeit steht eine pulsierende Kugel, im Projekt als „die Erde„ bezeichnet, die im Rhythmus der gemessenen Herzfrequenz leicht atmet und bei jedem Herzschlag kurz aufleuchtet. Sie bildet den Ausgangspunkt für alle weiteren visuellen Elemente und steht sinnbildlich für die Person, deren Vitaldaten die Installation steuern.

Aus dieser Kugel heraus wächst ein verzweigtes, organisches Geäst: Etwa alle drei Messwerte entsteht ein neuer Knoten an einer von sieben unabhängigen Wachstumsspitzen, die gleichmäßig um die Kugel verteilt beginnen. Jeder Ast krümmt sich dabei sanft, ähnlich einem echten Zweig, und verzweigt sich gelegentlich zu Seitentrieben. So macht die Struktur die über die Zeit gesammelten Messungen als wachsende Form sichtbar.

Dahinter steht eine bewusst gesetzte symbolische Ebene: Die Mitte ist die Erde, und die aus ihr wachsenden Äste sind die Kontinente, die sich im Laufe der Zeit immer weiter ausbreiten und schließlich miteinander verbinden. Darin liegt der eigentliche Gedanke der Arbeit: Jeder Mensch trägt ein Herz in sich, und in diesem einen gemeinsamen Herzschlag sind wir letztlich alle miteinander verbunden. Das wachsende Geäst wird so zum Sinnbild dafür, dass die Menschheit im Kern eins ist, verwoben zu einem einzigen, sich beständig weiterentwickelnden Lebewesen. Genau darin liegt für mich das eigentliche Kunstwerk: nicht nur die sichtbare Form, sondern das, wofür sie steht.

Ergänzend dazu markiert eine zweite Struktur, die „Herzschlag-Spirale“, jeden einzelnen erkannten Herzschlag dauerhaft als eigenen Punkt. Die Punkte sind im Muster einer Sonnenblume angeordnet: Jeder neue Punkt ist gegenüber dem vorigen um den Goldenen Winkel (rund 137,5°) weitergedreht, sein Abstand zur Mitte wächst so, dass jedem Schlag dieselbe Fläche zusteht. Dieses aus der Botanik bekannte Muster verteilt sich von selbst gleichmäßig, ohne dass eine Kollisionsprüfung nötig wäre, und kann dadurch beliebig lange weiterwachsen, ohne jemals steckenzubleiben (siehe Kapitel 5.1).

Die Farbe der gesamten Arbeit wird durch die Neigung des am Körper getragenen Beschleunigungssensors gesteuert: Kippen nach links färbt die Arbeit blau, nach rechts rot, in der Mitte bleibt sie grün; nach oben wird die Farbe blasser, nach unten kräftiger und dunkler. Anstelle eines festen Nullpunkts passt sich die Farbskala fortlaufend an die tatsächlich beobachtete Bewegung an (siehe Kapitel 5.5).

Gestalterisch war mir ein ruhiger, atmosphärischer Charakter wichtig: Die Arbeit soll wirken wie das Beobachten eines langsamen, natürlichen Vorgangs, nicht wie ein überladenes, reizüberflutendes Bild. Dieser Anspruch hat den gesamten Gestaltungsprozess maßgeblich mitbestimmt.

3. Technischer Aufbau

Die Installation besteht aus drei Teilen, die über eine serielle Verbindung und ein lokales Netzwerk miteinander kommunizieren.

Hardware

Ein ESP32-S3-Mikrocontroller liest zwei Sensoren aus: einen MAX30100-Pulsoximeter-Sensor für Herzfrequenz und Sauerstoffsättigung (SpO2) sowie einen ADXL345-Beschleunigungssensor für Bewegung und Neigung. Der Sensor ist über ein Kabel mit dem Laptop verbunden, wodurch der nutzbare Bewegungsradius auf etwa 60 cm nach links und rechts, 90 cm nach oben und 60 cm nach vorn begrenzt ist. Diese Einschränkung musste bei der späteren Farbsteuerung berücksichtigt werden.

Controller-Gehäuse

Der Sensor sitzt nicht offen auf einem Steckbrett, sondern in einem eigens entworfenen Gehäuse, das äußerlich an einen Wii-Controller in Form einer Armbrust erinnert. Ich habe es selbst in Fusion 360 modelliert und anschließend gedruckt. An der Stelle, an der bei einer echten Armbrust der Pfeil abgeschossen würde, befindet sich eine Öffnung, aus der stattdessen das Licht des Pulsoximeter-Sensors sichtbar nach außen tritt. Das macht den Umgang mit dem Controller spielerisch und intuitiv: Man hält ihn wie eine Waffe, bewegt ihn frei im Raum und sieht gleichzeitig, wie der Sensor im Rhythmus des Pulses aufleuchtet. Eine bauliche Eigenheit ergibt sich aus der Dicke des Griffs: Da dieser zufallsbedingt zu voluminös geraten ist, um ihn wie einen klassischen Pistolengriff zu umfassen, hält man den Controller in der Praxis am besten wie ein umgedrehtes, spiegelverkehrtes L.

Server

Ein Node.js-Server (server.js) liest die vom ESP32 über die serielle Schnittstelle gesendeten Messwerte zeilenweise ein (Herzfrequenz, SpO2, Beschleunigung in drei Achsen, Herzschlag-Signal) und leitet sie per Socket.IO in Echtzeit an den Browser weiter. Außerdem stellt der Server die Webseite mit der eigentlichen Visualisierung bereit.

Visualisierung

Die eigentliche Darstellung läuft als p5.js-Sketch (sketch.js) im Browser. Er empfängt die Sensordaten über Socket.IO, berechnet daraus alle visuellen Elemente neu und erzeugt zusätzlich einen generativen Klang, der bei jedem Herzschlag einen Ton auslöst. Ist kein Sensor angeschlossen, lässt sich über einen Demo-Modus (Taste D) eine simulierte Datenreihe erzeugen, um die Installation auch ohne Hardware testen zu können.

Der vollständige Quellcode ist auf GitHub verfügbar:  Github

controller_bpm.pngcontroller_bpm.png
2CA5F7FE-3AD4-4C22-B3B7-1D343ACC767E_1_105_c.jpeg2CA5F7FE-3AD4-4C22-B3B7-1D343ACC767E_1_105_c.jpeg
IMG_3232.jpegIMG_3232.jpeg

4. Entwicklungsprozess – Herausforderungen und Lösungen

4.1 Wachstum blieb nach einiger Zeit vollständig stehen

Das ursprünglich nach P_2_2_4_01 umgesetzte Anlagerungsverfahren geriet ab etwa 300 bis 400 gemessenen Werten zunehmend in eine Sackgasse: Ein Kandidatenpunkt suchte sich jeweils den nächstgelegenen bestehenden Knoten und lagerte sich dort an. Je dichter die Struktur wurde, desto häufiger scheiterte dieser Versuch, und ein wiederholt gescheiterter Punkt wurde dauerhaft aus der Wachstumsliste entfernt. Sobald das allen Ästen gleichzeitig passierte, blieb keine Anlagerungsstelle mehr übrig, und das Wachstum stand endgültig still, ohne Weg zurück.

Die Lösung war ein grundlegend anderes Wachstumsprinzip: Neue Knoten entstehen seither ausschließlich an eigens geführten „Spitzen„ pro Ast, die beim Wachsen ihre Rolle an den neuen Knoten weitergeben, statt gelöscht zu werden. Findet eine Spitze wirklich keinen Platz mehr, wird sie an eine andere, freiere Stelle im bereits gewachsenen Holz „versetzt“, anstatt verloren zu gehen. Das funktioniert ähnlich wie ein Schlafauge an einem echten Ast.

4.2 Gerade Linien statt organischer Äste

Auch nach diesem Umbau entstanden immer wieder auffällig gerade Linien. Durch systematisches Testen, also gezieltes Ein- und Ausschalten einzelner Teilsysteme bei laufender Anwendung, ließ sich die Ursache eingrenzen: Die Wuchsrichtung jedes Schritts wurde teilweise mit dem Winkel „von der Kugel nach außen„ gemischt. Dieser Anteil wirkte wie eine Rückstellfeder: Ein zufälliger Schlenker wurde im nächsten Schritt sofort wieder zur radialen Linie zurückgezogen, wodurch ein Ast praktisch nicht abbiegen konnte. Statt die Richtung selbst zufällig zu verändern, wird seither die Krümmung verändert: Jeder Trieb trägt eine Drehrate, die sich von Knoten zu Knoten nur langsam verschiebt. Dadurch entstehen geschwungene, natürlich wirkende Zweige.

4.3 Ungleichmäßiges Wachstum einzelner Äste

Obwohl die sieben Äste gleich behandelt werden sollten, wuchs zeitweise ein einzelner Ast stark überproportional, während andere fast stillstanden. Eine gezielte Messung der tatsächlich getroffenen Astauswahl zeigte, dass p5.js einen einzigen globalen Zufallsgenerator verwendet, und eine unabhängige, an anderer Stelle laufende Hintergrundgrafik setzte diesen Generator bei jedem Bild auf einen festen Wert zurück. Dadurch war die eigentlich zufällige Astauswahl in Wahrheit stark vorhersehbar verzerrt. Die Lösung bestand darin, den Zufallsgenerator unmittelbar vor der Astauswahl gezielt mit einem echten Zufallswert neu zu belegen.

4.4 Performance-Probleme

Bei längerer Laufzeit wurde die Anwendung spürbar langsamer. Systematisches Zu- und Abschalten einzelner Zeichenroutinen bei gleichzeitiger Messung der Bildrate zeigte, dass sich bei häufigem Herzschlag beliebig viele überlappende „Plasmawellen“ ansammeln konnten, deren aufwendige Konturberechnung mit der Zeit zum größten Kostenpunkt wurde. Eine feste Obergrenze für gleichzeitig aktive Wellen löste das Problem.

4.5 Farbsteuerung

Die größte Herausforderung im letzten Projektabschnitt war es, die Farbe der Arbeit über die Neigung des Beschleunigungssensors zuverlässig und leicht bedienbar zu steuern. Ein erster Ansatz ging von einem festen Nullpunkt aus; der Sensor ruht aber je nach Einbaulage an völlig unterschiedlichen Messwerten, wodurch die Farbe dauerhaft an einem Ende der Skala hängen blieb. Ein zweiter Versuch lernte die Ruhelage automatisch zu Beginn der Sitzung ein, scheiterte aber daran, dass der Sensor genau in diesem Moment noch in der Hand gehalten wird und nicht in seiner späteren Ruhelage. Die endgültige Lösung verzichtet ganz auf einen festen Bezugspunkt: Die Farbskala passt sich fortlaufend an die tatsächlich beobachtete Bewegungsspanne an und legt zusätzlich breite „Plateaus„ auf Rot, Grün und Blau, damit diese Farben trotz des durch das Kabel stark eingeschränkten Bewegungsspielraums leicht zu treffen sind.

Insgesamt hat sich im Projektverlauf gezeigt, wie wichtig es ist, Annahmen über das Verhalten des Codes tatsächlich zu messen, statt sie nur aus dem Quelltext abzuleiten. Mehrere der oben beschriebenen Ursachen wären durch reines Nachdenken über den Code nicht auffindbar gewesen und ließen sich erst durch gezielte Instrumentierung und Beobachtung der laufenden Anwendung nachweisen.

4.6 Test Versuche:

Bildschirmfoto 2026-08-30 um 18.40.20.pngBildschirmfoto 2026-08-30 um 18.40.20.png
Bildschirmfoto 2026-08-30 um 18.47.16.pngBildschirmfoto 2026-08-30 um 18.47.16.png
biorhythm-collective-1788381757057.pngbiorhythm-collective-1788381757057.png
biorhythm-collective-1788385875460.pngbiorhythm-collective-1788385875460.png
biorhythm-collective-1789678592016.pngbiorhythm-collective-1789678592016.png
biorhythm-collective-1789688289675.pngbiorhythm-collective-1789688289675.png

5. Ergebnis

biorhythm-collective-1790473005272.pngbiorhythm-collective-1790473005272.png
biorhythm-collective-1790466643574.pngbiorhythm-collective-1790466643574.png
biorhythm-collective-1790467284166.pngbiorhythm-collective-1790467284166.png
biorhythm-collective-1790467666592.pngbiorhythm-collective-1790467666592.png
biorhythm-collective-1790468571578.pngbiorhythm-collective-1790468571578.png
biorhythm-collective-1790468787204.pngbiorhythm-collective-1790468787204.png
biorhythm-collective-1790469402839.pngbiorhythm-collective-1790469402839.png
biorhythm-collective-1790470184859.pngbiorhythm-collective-1790470184859.png
biorhythm-collective-1790471077911.pngbiorhythm-collective-1790471077911.png
biorhythm-collective-1790471721824.pngbiorhythm-collective-1790471721824.png

6.Reflexion

Der größte praktische Stressfaktor im Projekt war nicht die Software, sondern die Hardware-Verbindung: Ein einfaches Kabel zwischen ESP32 und Laptop begrenzte sowohl die Zuverlässigkeit der Verbindung als auch den nutzbaren Bewegungsspielraum erheblich. Bei einem vergleichbaren Folgeprojekt würde ich von Anfang an in besseres Equipment investieren, auch wenn es teurer ist. Der Aufwand, den ich stattdessen in Software-Umwege investieren musste, um mit den Einschränkungen der Hardware zurechtzukommen, war am Ende deutlich größer.

Für künftige, ähnlich komplexe Projekte plane ich außerdem, mit einem leistungsfähigeren KI-Modell (etwa Claude Opus) zu arbeiten, um schneller und mit weniger Rückschlägen voranzukommen.

7. Fazit & Ausblick

Am Ende der Entwicklung steht eine stabil und dauerhaft lauffähige Installation, die aus realen Vitaldaten eine ruhige, sich stetig weiterentwickelnde generative Komposition erzeugt. Die zentralen technischen Probleme, darunter stehenbleibendes Wachstum, gerade Linien, ungleichmäßige Verteilung, Performance-Einbrüche und eine schwer bedienbare Farbsteuerung, konnten jeweils durch systematisches Messen und gezielte Ursachenforschung gelöst werden.

Für eine Weiterentwicklung böte sich insbesondere die Hardware-Seite an: Eine echte, aus dem Pulssignal erkannte Herzschlagerkennung anstelle des aktuell nur geschätzten Takts sowie eine kabellose Verbindung zwischen Sensor und Laptop würden sowohl die Genauigkeit als auch die Bewegungsfreiheit der Installation deutlich verbessern.

Ein Projekt von

Fachgruppe

Interfacedesign

Art des Projekts

Studienarbeit im zweiten Studienabschnitt

Betreuer_in

foto: Sebastian Meier foto: Ivan Iovine

Zugehöriger Workspace

Automatisierte Systeme im Design: KI-basierte Objekte und Services entwerfen

Entstehungszeitraum

Wintersemester 2026 / 2027