Glitch-Kamera, Creative Coding und visuelle Rückkopplung.
Muster aus der Schleife / visuelle Rückkopplungen
Thema
70er Jahre: Ein TV-Monitor zeigt das Bild einer VHS Kamera an. Was geschieht wenn man die Kamera auf diesen TV Monitor richtet?
Wie können solche Effekte digital nachgebildet werden?
Wie können wir mit Algorithmen ähnliche Effekte erzeugen?
Foto Regeln
Menschen nur photographieren wenn diese vorher ihr Einverständnis gegeben haben.
Vorbilder
- analoges TV Equipment
- Eine Kamera welche ihr eigenes Bild aufnimmt.
- Vilsueller Glitch
- Fehlabtastung des Kamerasensors
- Farbfehler
Begriffe
Schleife / Rückkopplung
- Ein Verfahren immer wieder auf seine Ergebnisse anwenden.
Signal / Datenfluss
- Bilddaten die durch eine Filterkette laufen.
Intern / Extern
- intern: Bilddaten mit Algorithmen direkt auf der Grafikkarte manipulieren.
- extern: Monitor - Kamera - Schleifen.
- extern: In der optischen Achse befinden sich Spiegel, Gläser, Folien …
“Studio”
Zwei Bildschirme, die Kamera ist auf den linken Bildschirm ausgerichtet.
Unterschiedliche Software Tools.
Monitor - Kamera - Schleife. Simpler Effektfilter.
Monitor - Spiegel - Kamera - Effektfilter - Schleife.
Ein nanoKONTROL2 MIDI Controller um die Parameter des Effektfilters zu verändern.
Der Plattenspieler als Drehteller, Kamera von Oben, Unterschiedliche Lichtquellen, Sensoren.
Ein kleiner “Infinity Mirror(s) Room” siehe: Yayoi Kusama
Eigene Software
“Glich camera / Loop camera / Blend camera”
Zum experimentieren für unterwegs. Die meisten Beispiele in diesem Workshop sind mit diesen WEB Apps erstellt.
- Drei Webseiten welche den Kamera-Stream manipulieren.
- Läuft auch auf Smartphones.
- Einfach zu bedienen.
“analog Not analog”
“analog Not analog” aNa eine Sammlungen von Grafikalgorithmen mit denen ich arbeite.
- Video Synthesizer und Manipulator.
- algorithmisch Formen und Farbverläufe erzeugen.
- Prototyping eines visuellen Datenflusses
- kann über Open Sound Control gesteuert werden.
- ist live coding fähig.
- ist aufwendig zu installieren, steile Lernkurve voraus.
Die Idee hinter der Loop Camera kommt aus aNa.
Bestandteile des Workflows
- Das Setting für die photographische Aufnahme
- plus eine Kette von Effektfiltern
- plus die visuelle Rückkopplung
- optional Algorithmen für geometrische Verzerrungen, Perlin Noise …
- optional optische Gläser, Spiegel, Gruscht, …
Datenfluss
Direkter Datenfluss mit Effektfilter → GLIC camera
- Farbenwinkel drehen / HSV Farbmodell
- Fehlabtastung der Farbkanäle des Inputs
- Pixelation
- Geometrie verzerren
- … künstliche Spiegelachsen einfügen, Kanten hervorheben, …
Ein simples buntes Beispiel in Falschfarben mit der Glitch-Camara. Der Filter verändert den Farbton / Farbwinkel.
Das Motiv ist mit einem gekippten Horizont aufgenommen. Zusätzlich erzeugt der Effektfilter eine horizontalen Spiegelachse.
Eine simulierte Fehlabtastung des Fotosensors.
Datenfluss: Kamera → Filter → Display
Doppelbelichtung → BLND camera
Mixer
Mixer zum überblenden zweier Bilder.
- Ähnlich zur Doppelbelichtung auf einem analogen Film.
- Ähnlich zu den Blend Modes zwischen Layern in einem Fotobearbeitungsprogrammen.
Dieser Modus ähnelt einer Funktion die in Bildbearbeitungsprogrammen zu finden ist. Es gibt dort Ebenen und man kann zwischen verschiedenen Strategien wählen, um diese Ebenen zum endgültigen Bild zusammenzufügen. BLND hat nur zwei Ebenen. Den Hintergrund, den du in der ersten Phase aufgenommen hast, und das aktuelle Kamerabild.
Bei der Doppelbelichtung mit analogem Film werden die beiden Belichtungen addiert. Auch BLND verfügt über diesen Überblendungsmodus. Aber es gibt noch eine Menge anderer Strategien in dieser Anwendung. Effekte, die mit analogen Geräten nicht erreicht werden können. Einige dieser Überblendungsmodi führen zu überraschenden Ergebnissen.
Zwei mal das Motiv. Als Streifen kombiniet.
Nahaufnahme der Blühten als Hintergrund. Dann kombiniert mit der Architektur des Gewächshauses.
Ein Schild mit schwarzer Schrift auf hellem Hintergrund verändert die Geometrie der Blume.
Doppelbelichtung in Falschfarben.
Datenfluss in der BLND camera
Datenfuss Phase 1: Das Hintergrundmotiv suchen und speichern. In dieser Phase sind keine Effektfilter aktiv.
Datenfuss Phase 2: Das aktuelle Motiv mit dem Hintergrundmotiv überlagern.
Keys als “Weichen”
Dies ist direkt aus dem analogen TV inspiriert.
luma key: Dort wo Signal 1 heller ist als ein Schwellwert wird Signal 2 weiter gegeben.chroma key: Dort wo Signal 1 eine bestimmte Farbe aufweist wird Signal 2 weiter gegeben. (green screen)
Hier ein “luma key” Beispiel. Die Helligkeit steuert pro Pixel die Auswahl welches Signal weitergegeben wird.

Datenfuss in aNa

Interne Rückkopplungen → LOOP camera
Die Rückopplung findet direkt im Speicher des Grafikptozessors (GPU) statt.
Es gibt:
- die Kamera um Bilddaten in das System zu bringen.
- genau einen zusätzlichen Bild-Speicher.
- eine Rückkopplung des Bild-Signals.
- einen Effektfilter der als Mixer oder Key arbeitet.
- oder einen Effektfilter der die Geometrie verzerrt.
Kontinuierliche Verzerrung der Geometrie.
Ähnlich zum “intensional camera movement”.
Glitch Effekt
Glitch Effekt
Droste Effekt + Fehlabtastung
Ein “morphologischer Operator” läßt benachbarte helle Pixel die Bildfläche fluten.
Verkleinerungen und Fraktale Geometrien
Droste Effekt
Dadurch, dass es jetzt einen (1) zusätzlichen Speicher im System gibt sind erhöhen sich die Möglichkeiten deutlich. Hier zum Beispiel der Droste-Effekt.
- Eine Kopie des Bildes im selben Bild platzieren.
- Diese Strategie wiederholt anwenden.

https://metagrowing.org/loop?filter=F022
Die Mehrfach-Verkleinerungs-Kopier-Maschine
Die Säulen der fraktalen Geometrie: Rückkopplung und Iteration
Die Mehrfach-Verkleinerungs-Kopier-Maschine
in: Bausteine des Chaos
von Peitgen, Jürgens, Saupe; circa 1992
- Der Verkleinerungs- und Duplizier-Vorgang liefert den Attraktor.
- Die originale Geometrie strebt gegen den Attraktor.
- Die Farben bleiben in etwa erhalten.
MVK Tageslichtprojektor
MVK Selfie
https://metagrowing.org/loop?cam=user&filter=F010
Datenfuss in der Mehrfach-Verkleinerungs-Kopier-Maschine

Conformal Map
“Winkeltreue” Abbildung der Ebene. Achtung: Dieses Bild ensteht ohne einen zusätzlichen Puffer. Es wird keine Rückkopplungsschleife benötigt.

https://metagrowing.org/glic?filter=F028
Zusätzlich eine externe Rückkopplung
Warum zusätzlich die externe Rückkopplung?
- Optische Effekte einsetzten die algorithmisch sehr aufwendig zu erzeugen sind.
- Eine Szene aus realen Gegenständen kann sehr einfach verändert werden.
- Erzeugt mit geringen Aufwand viele visuelle Details.
- Rein algorithmisch sieht zu “clean” aus.
Hilfsmittel
- Objekte und Gläser in der optischen Achse als zusätzlicher Filter.
- Lichtquellen
- LEDs in der optischen Achse.
- Eine zusätzliche Beleuchtung der Szene von außen. Denn eine Beleuchtung ausschließlich durch den Monitor funktioniert nicht.
Monitor Spiegel Kamera Schleifen
Beispiele die mit externen Rückkopplung entstanden sind

Making of “light glass and mirrors”
Es gibt mehrere Möglichkeiten das Bild abzugreifen.
- Dies was die Kamera - die in die Schleife eingebunden ist - sieht.
- Dies was der Effektfilter anzeigt.
- Dies was eine zusätzliche Kamera sieht.
Setting
- Zwischen 2 parallel ausgerichteten Spiegeln liegen bunt Holzklötzchen.
- Eine helle Lampe beleuchtet die Szene.
- Die Kamera des Smartphones sieht die bunten Klötzchen und ihre Spiegelungen.
- Der Effektfilter im Smartphone verzerrt die Geometrie.



Externe contra interne Rückkopplung
extern (analog) einfach zu erreichen:
- optische Brechung des Lichts
- Prismen, Gläser …
- Zeichnen mit Licht
- Flüssigkeiten
intern (digital) mit Hilfe von Algorithmen einfach zu erreichen:
- Den Farbwinkel verändern
- Pixel Push / Pixel Sort Algorithmen
- Kachelung / mehrfache Wiederholungen des Motivs
“Material” aus der realen Welt
Das Material erforschen um optische Stilmerkmale zu finden.
Materialien:
- Gläser
- Optische Brechung in Gläsern ausnutzen
- Farbige Gläser
- Lichtquellen
- direkt in der optischen Achse
- indirekte Beleuchtung
- Flüssigkeiten
- Ölfarbe auf Glasträger
- 2 unterschiedliche gefärbte Flüssigkeiten die sich nicht mischen.
- Wellenmuster in der Flüssigkeit
- mechanische Bewegungen
Stilistische Merkmale
Stilmerkmale analog und digital
Überlauf in den Farbkanälen
Bei analogen und digitalen Rückkopplungen kommt es schnell zu einem Überlauf der Farbkanäle.
In einem RGB System
- 1 Kanal übersteuert: rot oder grün oder blau dominiert.
- 2 Kanäle übersteuert: gelb oder cyan oder magneta dominiert.
- alle 3 Kanäle übersteuert: weiß
aNa mit 32 Bit Floats pro Farbkanal
Nicht unbedingt reproduzierbar
Digitale Systeme die Mitkopplungen / Rückkopplung enthalten sind nicht wesentlich leichter reproduzierbar als analoge Systeme mit Rückkopplung.
Der Vorzustand in den Rückkopplungspuffern beeinflusst das Ergebnis.
Bei analogen Systemen spielen zusätzlich elektromagnetische Einkopplungen, Temperatur der Elektronik, Kapazitäten, … eine Rolle.
WebGL
Fehlabtastung in der Textur-Einheit
Fehlabtastung in Textur-Einheit als Stilmittel. Hier Pixel Push ohne zusätzlichen Puffer.
Mit zusätzlichen Puffern wird Pixel Sort möglich.
Glic-Camera WebGL
Farbabweichung / Rundungsfehler bei 8 Bit pro RGB Farbkanal.
Im linken oberen Quadrant sind Farbfehler zu sehen. Der Puffer für die interne Rückkopplung verwendet 8 Bit Integer.
Loop-Camera WebGL mit 8 Bit pro Farbkanal.
Geometrische Transformationen
Viele geometrische Transformationen der Bildebene sind möglich: Rotation, Translation, Affine Abbildung, Conformal Maps, Funktion mir komplexen Zahlen ….
aNa als Kaleidoskop mit 32 Bit Floats pro Farbkanal
Kanten
Der digital Workflow erzeugt scharfe Kanten und (unerwünschtes) Aliasing.
Digital sieht es oft sehr “clean” aus. Diesen zu sauber glatten Eindruck kann man vermeiden: Als Input Material verwende, das in der realen Welt aufgenommen wurde. Oder in dem man auf eine strukturierte Oberfläche projiziert.
aNa mit 8 Bit pro Farbkanal
Grenzen
Technische Grenzen
- Farbtiefe
- Übersteuern der Farbkanäle
- 8 Bit unsigned integer / 32 Bit Float pro Farbkanal
- Flackern
- Moinitor Tearing / vertical sync / V-RAM schreiben während das Bild an den Monitor übertragen wird.
- invertierende Filter können zu starken flackern führen.
- Sind die Algorithmen parallelisierbar?
- general purpose GPU / passen die Algorithmen ins “singel instruction multible data” (SIMD) Schema? Benötigte Zeit für die Berechnung
- 60 Hz -> 16 Millisekunden pro Frame
- 30 Hz -> 33 Millisekunden pro Frame
- Wie oft liefert die Kamera ein neues Bild, mit welcher Farbtiefe / Auflösung?
ungewollte Effekte
- LEDs werden gepulst betrieben.
- -> Puls Wellen Modulation contra geregeltem Gleichstrom
- Kamera mit automatischer Belichtung oder Auto-Fokus
- -> Externe Lichtquelle um flackern durch die Rückkopplung zu vermeiden
Mit analogem TV Equiptment arbeiten.
Paloma Kop
Wenn du tiefer in das Thema “Filter und visuelle Rückkopplungen” einsteigen willst dann ist die Masterarbeit von Paloma Kop sehr zu empfehlen. Sie arbeitet vorwiegend Analog. Aber das ist auf den digitalen Workflow übertragbar.
... piece was created using camera/LCD screen feedback ...
... rotated ...
.. camera was deliberately out of focus ...
Paloma Kop
FROM MATERIAL SPACE(TIME) TO ELECTRONIC SPACE(TIME): INTERFACES, SIMULATONS, HYBRIDIZATIONS
Page 20 https://palomakop.tv/mfa/
Scanlines community
this forum was created as a friendly place to discuss
diy video and audio projects, electronic-based art,
and related interests.
Software
Starten
Glitch Camera / Smartphone
Die Glitch Camera starten: https://metagrowing.org/glic/
Beschreibung: https://gitlab.com/metagrowing/glic
Loop Camera / Smartphone
Die Loop Camera starten: https://metagrowing.org/loop/
Beschreibung: https://gitlab.com/metagrowing/loop
Doppelbelichtung / Blend Camera / Smartphone
Die Blend Camera starten: https://metagrowing.org/blnd/
Beschreibung: https://gitlab.com/metagrowing/blnd
Creative Coding
Die Glicht camera erweitern
- Einen Fragment Schader in WebGL programmiern.
dev.html - Diesen Filter (und seine Parameter) mit add_filter in die Liste eintragen.
dev.js - Test mit einem lokalen WEB Server.
python3 -m http.server - Per bash Script
dev.htmlunddev.jsin dieindex.htmlzusammenführen. - Deployment auf einen öffentlichen WEB Server.
precision mediump float;
uniform vec2 resolution;
uniform sampler2D cam_tex;
void main() {
vec3 ci = texture2D(cam_tex, vec2(gl_FragCoord.x/resolution.x, 1.0-gl_FragCoord.y/resolution.y)).rgb;
vec3 cfx = vec3(1.0)-ci;
gl_FragColor = vec4(cfx, 1.0);
}
add_filter(gl, true, "color", "negate", "F001");
Ein Howto ist hier zu finden:
https://gitlab.com/metagrowing/glic#development

Repository: Glitch Camera, Loop Camera and Blend Camera
https://gitlab.com/metagrowing/glic
https://gitlab.com/metagrowing/loop
https://gitlab.com/metagrowing/blnd
Alternative Software
analog Not analog / Clojure + openFrameworks
About analog Not analog https://metagrowing.org/ana/
aNa cookbook https://metagrowing.org/cookbook/
WEB Cam Apps
Cheese, a tool to take pictures and videos from your webcam.

OBS Studio
OBS Studio kombiniert mit dem Kernel Modul v4l2loopback

Hydra
Extra shaders for Hydra https://gitlab.com/metagrowing/extra-shaders-for-hydra

Links
analog Not analog
The ‘analog Not analog’ cookbook.
https://metagrowing.org/cookbook/
Source Code
https://gitlab.com/metagrowing/ana
Paloma Kop
MFA Thesis of Paloma Kop, Alfred University, 2020 https://palomakop.s3.us-east-1.amazonaws.com/palomakop_thesis_book_digital.pdf
scanlines.xyz community
mein Mastodon Kanal
© CC BY-NC-SA 4.0