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.
YouTube
@MisterLavaLava ↗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