In drei Schritten
zum ersten Bild.
PATH. ARM, Windows und Linux lassen sich aktuell aus dem Quellcode bauen beziehungsweise über die Release-CI erzeugen.Archiv entpacken
Das Binary lumen-engine und der Ordner ui müssen nebeneinander bleiben.
Engine starten
lumen-engine ausführen. Das native Program-Fenster ist der eigentliche Videoausgang.
Steuerung öffnen
Im Browser http://127.0.0.1:3030 öffnen, einen Generator wählen und Audio freigeben.
tar -xzf lumen-0.1.0-macos-x64.tar.gz cd lumen-0.1.0-macos-x64 ./lumen-engine # Steueroberfläche: # http://127.0.0.1:3030
Beim ersten Start erzeugt Lumen ein versioniertes Projekt im lokalen Anwendungsdaten-Ordner. Änderungen werden debounced und atomar gespeichert; nach einem Neustart werden Layer, Media Pool und manuelle Show wiederhergestellt.
Die Show läuft
nicht im Browser.
Lumen teilt das System bewusst in zwei Fehlerdomänen. Die native Rust-Engine besitzt GPU, Decoder, Transport, Audioanalyse, Projektzustand und Program-Output. Die Svelte-Oberfläche sendet Steuerdaten über ein versioniertes WebSocket-Protokoll und zeigt eine Vorschau derselben Offscreen-GPU-Textur.
Ein Browser-Reload, ein getrenntes WebSocket oder eine geschlossene Steueroberfläche stoppt deshalb nicht den Renderer. Das HTTP-/WebSocket-Interface bindet standardmäßig ausschließlich an Loopback.

Die Oberfläche
für den Live-Moment.
Layer Stack
Acht Layer werden von unten nach oben zusammengesetzt. Pro Layer stehen die folgenden Live-Kontrollen bereit:
- Quelle: einer der 16 Generatoren, ein importierter Clip oder leer.
- Opacity: Deckkraft von 0 bis 100 Prozent.
- Blend: Normal, Add, Multiply, Screen, Overlay, Difference, Lighten, Darken, Soft Light, Hard Light, Exclusion oder Color Dodge.
- Routing: Bus A, Bus B oder Off; der Crossfader mischt A und B.
- Solo / Mute: isoliert oder unterdrückt einen Layer ohne die Quelle zu entfernen.
- Transform: Position X/Y, Skalierung und Rotation.
- Farbe: Layer-Farbbehandlung vor dem Compositing.
Transport und Master
Play/Pause, Tap Tempo, BPM, Animationsgeschwindigkeit, Generator-Intensität und Master Blackout gelten für die laufende Komposition. Der Blackout setzt den Program-Ausgang exakt auf Schwarz, lässt den Zustand aber intakt.
Generatoren,
Effekte, Modulation.
16 Generatoren
Liquid Chrome, Solar Veil, Infinity Cathedral, Aurora Field, Laser Architecture, Particle Bloom, Organic Cells, Audio Sculpture, Celestial Drift, Moiré Temple, Silk Ribbons, Laser Lattice, Crystal Reactor, Sacred Bloom, Deep Nebula und Light Sweep sind direkt als WGSL-Quellen in der Engine implementiert.

24 Effekte
Brightness, Contrast, Saturation, Hue Shift, Invert, Solarize, Threshold, Posterize, Pixelate, Noise, Scanlines, Vignette, Mirror, Flip, Rotate, Wave, Twist, Zoom Pulse, Chromatic, RGB Split, Edge Glow, Kaleidoscope, Luma Key und Strobe werden als echte GPU-Passes ausgeführt.
Jeder Layer besitzt vier geordnete Slots. Ändert sich die Reihenfolge, ändert sich auch der sichtbare Renderpfad. Bypass überspringt den betreffenden Pass.


Modulationsquellen
Effektparameter lassen sich aus Beat, RMS, Low, Mid, High, Sine, Triangle, Saw und Beat Random treiben. Die Alpha bietet dafür eine lineare Texture-Kette; ein frei verzweigbares, typisiertes Graphsystem gehört zur Roadmap.
Erst einpegeln,
dann reagieren.
- Audioeingang auswählen beziehungsweise im Browser freigeben.
- Input Gain so erhöhen, dass normale musikalische Passagen klar ausschlagen, aber Peaks nicht dauerhaft anschlagen.
- Noise Floor knapp oberhalb des leisen Raum- oder Leitungsrauschens setzen.
- Audio Sync aktivieren, sobald BPM-Confidence stabil ist; andernfalls beim internen BPM bleiben.
Die Analyse berechnet RMS, Peak und die Bänder Low, Mid und High. Adaptive Hüllkurven geben den Bändern unterschiedliche visuelle Rollen. Onset-Erkennung liefert Impulse für Tempo-Schätzung und Phasenkorrektur. Der Audio-Clock wird nur bei ausreichender Confidence übernommen.

Szenenwechsel
durch musikalische Ereignisse.
Auto arbeitet nicht mit einem starren Intervall. Ein Wechsel kann durch einen deutlichen Peak oder Drop, einen Break oder eine Stillephase ausgelöst werden. Das Ereignis wählt eine passende Szenenfamilie; die Transition skaliert mit dem Beat.
- Ein Retrigger-Guard von zehn Sekunden verhindert hektische Mehrfachwechsel.
- Der Auto-Modus arbeitet auf einem transienten Show-Zustand.
- Beim Ausschalten kehrt Lumen zur vorherigen manuellen Komposition zurück.
- Live-Änderungen an Gain, Noise Floor und Transport bleiben dennoch erhalten.
Für ein musikalisch brauchbares Ergebnis zuerst Gain und Noise Floor sauber setzen. Auto kann nur so gut entscheiden wie das Eingangssignal getrennt ist.
Clips im
nativen Decoderpfad.
Importierte Dateien werden in den Lumen-Datenordner übernommen, mit FFprobe analysiert und mit einem Thumbnail versehen. Bis zu acht getrennte FFmpeg-Worker dekodieren aktive Videoquellen außerhalb des Renderthreads.
- Import über die Schaltfläche Import Media im Perform Workspace.
- Clip im Media Pool wählen und auf den gewünschten Layer starten.
- Metadaten und Thumbnail bleiben nach einem Neustart erhalten.
- Ein fehlgeschlagener Probe-Vorgang hinterlässt keine halbe Mediendatei.
Frame-genaue Suche, Clip-Audio, Cue Points, Proxies, Quantisierung und ein portables Show-Bundle sind noch nicht Bestandteil von 0.1.0.
Offene Kontrolle
für externe Tools.
Standardmäßig lauscht Lumen auf 127.0.0.1:9000. Eine andere Bind-Adresse sollte nur in einem vertrauenswürdigen Show-Netz verwendet werden.
| Adresse | Argument | Funktion |
|---|---|---|
/lumen/play | bool oder 0/1 | Transport Play/Pause |
/lumen/bpm | float | BPM, auf 20–300 begrenzt |
/lumen/audio/gain | float | Input Gain, auf 0–8× begrenzt |
/lumen/audio/gate | float | Noise Floor, auf 0–1 begrenzt |
/lumen/sync/audio | bool oder 0/1 | Audio-Clock ein/aus |
/lumen/demo | bool oder 0/1 | Audio-event-getriebener Auto-Modus |
/lumen/crossfader | float | A/B-Mix, 0–1 |
/lumen/intensity | float | Generator-Intensität, 0–1 |
/lumen/speed | float | Animationsgeschwindigkeit, 0–4 |
/lumen/color/a | 3 floats | Generator-Palette A |
/lumen/color/b | 3 floats | Generator-Palette B |
/lumen/reset | keins | Standardwerte laden |
# Beispiel mit oscsend: oscsend 127.0.0.1 9000 /lumen/bpm f 128 oscsend 127.0.0.1 9000 /lumen/audio/gain f 2.4 oscsend 127.0.0.1 9000 /lumen/demo i 1
Lokale Daten,
klare Pfade.
| System | Standardordner |
|---|---|
| macOS | ~/Library/Application Support/Lumen |
| Windows | %APPDATA%\Lumen |
| Linux | $XDG_STATE_HOME/Lumen oder ~/.local/state/Lumen |
Umgebungsvariablen
LUMEN_DATA_DIR— eigener Daten- und Projektordner.LUMEN_PORT— lokaler HTTP-Port, Standard 3030.LUMEN_UI_DIR— Pfad zur kompilierten Steueroberfläche.LUMEN_OSC_BIND— OSC-Bind-Adresse, Standard 127.0.0.1:9000.
Aus dem
Quellcode starten.
Benötigt werden Rust 1.97+, Node.js 24+, FFmpeg/FFprobe 9+ und eine Metal-, DirectX-12- oder Vulkan-fähige GPU.
cd ui npm ci npm run build cd .. cargo run -p lumen-engine
Lokale Qualitätschecks
cargo fmt --all --check cargo clippy --workspace --all-targets -- -D warnings cargo test --workspace cargo audit cd ui && npm run check && npm run build
Renderer-Änderungen sollten zusätzlich mit den enthaltenen Visual-, Effect-, Blend-, Control- und Motion-Audit-Skripten auf echter Hardware geprüft werden. Details stehen im Quellarchiv in README.md und CONTRIBUTING.md.
Ehrlich ist
Teil der Qualität.
0.1.0 ist eine lokal qualifizierte Public Alpha, noch keine produktionsfertige Show-Plattform. Diese Funktionen sind ausdrücklich Roadmap und nicht im aktuellen Build enthalten:
- MIDI Learn, Ableton Link, MIDI Clock und Pioneer Pro DJ Link.
- Freier, verzweigbarer Patch-Graph und nutzerdefinierte Shader-Pakete.
- Projection Mapping, Multi-Output, Warp, Edge Blend und Pixel Mapping.
- Recording, Syphon, Spout, NDI, DMX, Art-Net und Plugin-Isolation.
- Signierte/notarisierte Builds und ausgedehnte DirectX-/Vulkan-Show-Soaks.