Eigenprojekt · live seit 07.09.2026

Mr Lava Lava.

Ein Social-Media-Kanal, der niemanden braucht, der ihn betreibt.

Nachts rechnet eine Maschine in Salzburg das Innenleben einer Lavalampe aus. Am nächsten Tag steht das Ergebnis auf fünf Plattformen, betextet, betitelt, mit Cover. Dazwischen greift kein Mensch ein. Ich habe das gebaut, um zu zeigen, wie weit eine Content-Pipeline ohne Redaktion kommt.

5

Plattformen

YouTube, Instagram, Facebook, Mastodon, Bluesky

5

Posts pro Tag

vier Shorts, ein langer Loop am Abend

100 %

Eigenbau

jeder Frame auf eigener Hardware gerechnet

0 €

pro weiterem Clip

die Maschine steht hier, es läuft nur Strom

Was das ist

Mr Lava Lava ist ein Chill-Kanal. Langsame, nahtlose Loops von Wachs, das steigt, sich streckt und wieder zusammenfällt. Das Innenleben einer Lavalampe, ohne dass je eine Lampe zu sehen ist. Alles läuft still und in einem Zug durch, ein warmer Fleck im Feed, bevor man weiterscrollt.

Interessanter als der Kanal ist für mich die Maschine dahinter. Es gibt keinen Video-Generator, der so etwas liefert, und Stock-Material fällt aus, weil es dann eben nicht mein Material wäre. Also rechne ich die Bilder selbst: ein Shader auf der Grafikkarte, ein Seed pro Clip, unendlich viele Varianten, und jeder weitere Clip kostet nur Strom.

Der Rest ist Automatisierung, wie sie auch bei Kundenprojekten läuft. Nur dass hier der Kunde ich selbst bin und der Kanal jeden Tag zeigt, ob die Pipeline hält.

Wie eine Nacht abläuft

Von 21:00 bis zum Post am nächsten Morgen. Vier Schritte, dazwischen liegt kein Handgriff.

01

Rendern

Ein selbst geschriebener Raymarching-Shader läuft headless auf der GPU eines Mac Mini M1, angesteuert aus Python über ModernGL. Die Roh-Frames gehen direkt in ffmpeg, ohne Umweg über die Platte. Das Wachs ist reine Mathematik, jeder Seed ergibt eine eigene Lampe.

Python, ModernGL, GLSL, ffmpeg

02

Loopen

Jeder Clip ist nahtlos: der letzte Frame trifft den ersten mit 43 dB PSNR, der Übergang ist für das Auge nicht sichtbar. Der Ton entsteht im selben Schritt und auf dieselbe Länge, ein eigenes Programm rechnet ihn aus derselben Bewegung. Weil Bild und Ton aus Formeln kommen, hängt an keiner Sekunde eine Lizenz.

Loop-Mathematik, PSNR, prozeduraler Ton

03

Bauen

Ein Python-Job legt aus dem Rohvideo das fertige Post-Paket an: Wortmarke, Textzeile, Cover für das Reel und Thumbnail für die lange Fassung. Das Standbild dafür wird gesucht: der Frame mit der stärksten Einschnürung im Wachs.

make_post.py, Frame-Analyse

04

Posten

Ein Satz n8n-Workflows übernimmt den Rest. Um 21:00 startet der Nacht-Batch, ein Poller begleitet ihn bis in den Morgen, drei Slots am Tag veröffentlichen die Shorts, einer am Abend den langen Loop. Montags schreibt ein Report zusammen, was die Woche gebracht hat.

n8n, Data Tables, Nextcloud

Der Ton kommt aus derselben Rechnung

Der interessanteste Teil steckt im Audio. Es liegt keine Musik unter den Clips, es wird auch nichts eingekauft. Der Ton entsteht aus denselben Zahlen, aus denen das Bild entsteht.

Die Grundlage ist ein warmes Rauschen, wie es in einem Raum steht, wenn sonst nichts passiert. Darüber liegen zwei Filter, ein dumpfer bei 220 Hz und ein offener bei 1400 Hz, zwischen denen laufend geblendet wird. Wie weit aufgeblendet wird, bestimmt das Wachs: je mehr davon gerade schwebt, desto offener der Klang. Das Ergebnis atmet mit der Lampe, ohne dass man eine Melodie hört.

Dafür wird nie das fertige Video analysiert. Das Audio-Programm bekommt dieselbe Choreografie, mit der der Shader vorher gerechnet hat: welcher Blob wann wie groß ist, wann er abreißt, wann er wieder vom Pool geschluckt wird. Aus dieser Bewegung fallen die Steuerkurven ab.

Damit ist auch der Ton pro Seed deterministisch. Derselbe Clip klingt heute so wie in einem Jahr, und niemand muss sich fragen, wem die Musik unter dem Video gehört.

Was man tatsächlich hört

Atmen
Der Anteil des schwebenden Wachses öffnet den Filter. Läuft immer mit.
Abriss
Wenn sich ein Tropfen vom Pool löst, schwillt der Klang über zweieinhalb Sekunden an, gewichtet mit der Größe des Tropfens.
Verschlucken
Fällt der Tropfen zurück, gibt es einen kurzen Stoß und danach rund fünf Sekunden lang einen dumpferen, leiseren Raum.
Swoosh
Berühren sich zwei Blobs in der Luft, steigt ein schmales Band von 90 auf 380 Hz. Trennen sie sich, fällt es von 420 auf 70 Hz. Rund zwei Sekunden lang, im Stereobild dort, wo es im Bild passiert.
Für Leute, die es genau wissen wollen: der Signalweg

Das Bett ist Brown Noise, erzeugt über einen Leaky Integrator mit nachgeschaltetem 20-Hz-Hochpass. Darüber laufen zwei Tiefpassbänder bei 220 Hz und 1400 Hz, die per Hüllkurve gegeneinander geblendet werden. Stereo entsteht aus zwei getrennten Rauschquellen, 75/25 gekreuzt, Peak bei minus 6 dBFS. Eine Loudness-Normalisierung auf die üblichen minus 14 LUFS der Plattformen ist noch offen.

Die Hüllkurven kommen aus blob_params und airborne des Renderers. uAir, der Anteil des schwebenden Wachses, öffnet den Tiefpass. Bei Pinch-off (Choreografie-Parameter c = 0.415) läuft ein 2,5-Sekunden-Schwell auf Lautstärke und Helligkeit, gewichtet mit dem Blob-Volumen, also R³ relativ zum größten Blob. Beim Verschlucken (c = 0.96) gibt es einen kurzen Bump, danach rund 5 Sekunden dumpfer und leiser.

Die Swooshes stammen aus einem Python-Port der Shader-Kinematik: cycle_blob() rechnet die Bahnen nach, contact_events() sucht pro Blob-Paar Verschmelzen (Oberflächen-Gap kleiner als minus 0.15) und Trennen (grösser als 0.15) in der Luft. Merge ist ein aufsteigendes Bandpass-Rauschen von 90 auf 380 Hz, Split ein fallendes von 420 auf 70 Hz, je rund 1,9 Sekunden, im Stereobild nach der x-Position des Paares. Der Kopplungsfaktor 0.21 in swoosh_track ergibt minus 5 bis plus 2 dB relativ zum Rauschbett im 60- bis 450-Hz-Band. Bei 0.15 war der Effekt vollständig maskiert.

An der Loop-Naht wird das Rauschen mit einem 3-Sekunden-Crossfade vom Ende auf den Anfang geblendet, die Filterzustände werden dabei mit dem Loop-Ende vorgewärmt. Gemessen ist der Sprung an der Naht kleiner als ein normaler Sample-Schritt. Der Parameter --strength skaliert ausschliesslich die Ereignis-Kopplung (0.35 soft, 0.7 medium, 1.0 strong), das Atmen läuft in jeder Stufe mit.

Leiser als man denkt

Die Swooshes sollen sich nur erahnen lassen. Die erste Fassung lag zwischen 320 und 1800 Hz und klang zu luftig, fast nach Wind. Jetzt sitzen sie tief und langsam, damit das Wachs zäh wirkt und nicht flott. Über dem Rauschbett liegen sie zwischen minus fünf und plus zwei Dezibel.

Die Naht muss auch klingen

Ein Bild-Loop nützt wenig, wenn es beim Wiederholen knackst. Das Rauschen wird deshalb über drei Sekunden mit sich selbst überblendet, und die Filter starten bereits mit dem Zustand vom Loop-Ende. Ohne diesen Trick sitzt beim allerersten Sample ein hörbarer Klick.

Drei Stufen, eine Entscheidung

Wie stark die Ereignisse durchschlagen, ist ein einziger Regler mit den Stufen soft, medium und strong. Das Atmen bleibt in jeder Stufe an. Nach dem Vergleich aller drei Fassungen läuft der Kanal auf strong.

Warum das nicht trivial ist

Der Weg über 3D wäre gescheitert

Ich habe es gemessen: dieselbe Sekunde Video über Blender mit Cycles kostet auf derselben Maschine rund 100 Sekunden Rechenzeit pro Frame. Das ergibt ein Unikat pro Nacht statt eines vollen Programms. Der Shader-Weg liegt bei knapp vier Sekunden pro Frame.

Der Loop muss unsichtbar sein

Sobald ein Clip sichtbar springt, ist die Ruhe weg. Der Übergang wird deshalb gemessen und nicht geschätzt, Ziel ist ein Wert, ab dem das Auge keinen Unterschied mehr findet. Bild und Ton laufen dabei auf exakt derselben Länge.

Jede Plattform hat ihre Launen

Jede Plattform will das Video anders: Instagram und Facebook laden in Etappen und melden erst später, ob es geklappt hat. Die Pipeline wartet deshalb aktiv, statt blind weiterzumachen, und hat für jeden Kanal einen eigenen Fehlerpfad. Fällt Mastodon aus, steht der Rest trotzdem.

Wo er läuft

Alles auf Englisch, weil die Clips ohne Sprache auskommen und international laufen.

Instagram

@mrlavalavaog ↗

Facebook

Mr Lava Lava

Mastodon

Mr Lava Lava

Bluesky

Mr Lava Lava

Live-Zahlen zu Views und Reichweite kommen hier her, sobald die Statistik sauber aus allen Kanälen läuft.

Was das mit deiner Firma zu tun hat

Der Kanal ist ein Extremfall, absichtlich. Wenn eine Pipeline es schafft, jede Nacht selbst Material zu erzeugen, es zu prüfen, zu verpacken und auf fünf Plattformen zu bringen, dann schafft sie auch das, was in einem Betrieb tatsächlich anfällt: Angebote aus Formularen, Daten aus fremden Systemen, Berichte, die jemand sonst am Montag von Hand tippt.

Dieselben Bausteine, die hier laufen, stecken auch in den Kundenprojekten: n8n als Schaltzentrale, eigene Hardware statt fremder Dienste, offene Software und Daten, die im Haus bleiben.

Passend dazu: Workflow-Automatisierung, weitere Arbeiten.

Impressum und Offenlegung

Mr Lava Lava ist ein Projekt von HÖÖM.

Christopher Helminger
Franz-Josef-Straße 20/3, 5020 Salzburg, Österreich
GISA-Zahl 39390738, Magistrat der Stadt Salzburg
UID ATU74862437
mrlavalava@thelgb.net

Unternehmensgegenstand: Dienstleistungen in der automatischen Datenverarbeitung und Informationstechnik. Blattlinie: eigene gestalterische und technische Arbeiten, ohne redaktionelle Inhalte Dritter.

Für die Verarbeitung personenbezogener Daten auf dieser Seite gilt die Datenschutzerklärung von thelgb.net. Auf den Plattformen selbst gelten zusätzlich deren eigene Bestimmungen.

Was soll bei dir nachts von selbst laufen?

Erzähl mir, welcher Handgriff sich bei dir jeden Tag wiederholt.

Kontakt aufnehmen