# HMS MediaEngine **Arbeitstitel** – der Produktname kann später ohne technische Auswirkung geändert werden. Modularer Medienserver, VJ-System und generativer Licht-/Pixeleffekt-Server. - **Primärplattform:** Windows 11 x64, portabel ohne Installation - **Weitere Zielplattformen:** Linux x64, Raspberry Pi 5 / Linux ARM64 - **Steuerung:** lokale Webanwendung (Browser), Art-Net/DMX, spätere Timeline/Audio/KI ## Leitsatz > **Python steuert. Native Bibliotheken decodieren. Die GPU rendert. Der Browser bedient.** ## Projektstatus Das Projekt befindet sich in **Phase 0 – technischer Spike und Go/No-Go**. Aktueller Stand, Gates und nächste Aufgaben: [`STATUS.md`](STATUS.md) Fehlerverfolgung: [`ERRORS.md`](ERRORS.md) Messergebnisse: [`TEST_REPORT.md`](TEST_REPORT.md) Bauplan (normativ): [`PLAN.md`](PLAN.md) ## Repository-Struktur (Eigentumsgrenzen) ```text / ├─ apps/ launcher, control_server, renderer, web ├─ native/ render_bridge (Rust oder C++, Entscheidung per ADR) ├─ packages/ domain, protocol, parameter_engine, render_backend, │ capabilities, adaptive_quality, plugin_sdk, artnet, │ cluster, content_sync, timeline, audio_analysis, │ persistence ├─ plugins/ builtin (generators, filters, transitions, outputs), examples ├─ schemas/ project, plugin, ipc, cluster, api ├─ fixture_profiles/ master32, layer64 ├─ tests/ unit, integration, rendering, cluster, visual, │ performance, portability, e2e ├─ tools/ media_probe, shader_validate, artnet_emulator, │ capability_probe, cluster_test_node, fixture_generator ├─ build/ windows, linux, raspberry_pi └─ docs/ architecture, adr, plugin-sdk, api, fixture, performance, operator ``` Code darf nicht beliebig zwischen Paketen quer importiert werden. ## Entwicklung ```bash # Python-Umgebung uv sync # Tests uv run pytest # Lint + Typprüfung uv run ruff check . ``` Frontend (ab Phase 5): `pnpm` mit Lockfile, Vite-Build, siehe `apps/web`. ## Phasenmodell Die Entwicklung folgt strikt dem Phasenmodell aus `PLAN.md` Abschnitt 31. Jede Phase endet mit einem Gate; **keine neue Phase ohne grünes Gate.** | Phase | Inhalt | Gate | --- | --- | --- | | 0 | Technischer Spike, Machbarkeitsnachweis, ADRs | Gate 0: D3D11-HW-Decode, GPU-Compositing, Adaptive Quality, Art-Net-Latenz, portable Auslieferung reproduzierbar grün | 1 | Fundament: Supervisor, Control Core, Renderer, IPC, Node-Identität, Discovery, Paarung | Gate 1 | 2 | Medien-, Layer-, Basissync-Engine | Gate 2 | 3 | Plugin-SDK, Starterpaket Generatoren + Filter | Gate 3 | 4 | Art-Net-Fixtures Master32/Layer64 | Gate 4 | 5 | Vollständige Browser-Liveoberfläche | Gate 5 / V1.0-Kernrelease | 6+ | Cue/Timeline, Audio, Mapping, Pixel-Ausgabe, KI, Pi 5, Härtung | eigene Gates ## Verbindliche Regeln (Auszug) - Keine Pixelverarbeitung in Python-Schleifen. - Kein CPU-Readback im normalen HDMI-Renderpfad (Windows: D3D11Memory durchgängig). - Kein Mock als fertige Funktion gemeldet; Hardwaretests nur auf echter Hardware. - Jede Architekturabweichung braucht ein ADR und Freigabe. - Projektschema versioniert, Migrationen getestet. ## Dokumentation - Architektur: `docs/architecture/` - ADRs: `docs/adr/` (Vorlage: `docs/adr/_template.md`) - Plugin-SDK: `docs/plugin-sdk/` (ab Phase 3) - Fixture-Handbücher: `docs/fixture/` (ab Phase 4) ## Lizenz TBD – wird mit dem ersten Release entschieden (SBOM und Lizenzverzeichnis sind Teil der Release-Anforderungen, PLAN.md Abschnitt 30).