**Core**
Die Host-Seite ist jetzt auf eine gemeinsame software-first API ausgerichtet. In [control.rs](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/crates/infinity_host/src/control.rs>) steckt jetzt das stabile gemeinsame Modell für Snapshots, Commands, Pattern-Katalog, Presets, Gruppen, Parameter, Preview und Übergänge. Darauf sitzen die neue Szenen-/Pattern-Schicht in [scene.rs](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/crates/infinity_host/src/scene.rs>) und der simulationsbasierte Host-Service in [simulation.rs](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/crates/infinity_host/src/simulation.rs>). Der neue Core kann jetzt softwareseitig schon: - Pattern-Katalog mit `solid_color`, `gradient`, `chase`, `pulse`, `noise`, `walking_pixel` - Preset-Recall, Gruppen-Targeting, Parameteränderungen und Übergänge - simulierte Preview-Daten für alle 18 Outputs - denselben API-Zugriff für CLI, Engineering-GUI und später Web-UI / grandMA-Adapter Zusätzlich gibt es im Host-CLI jetzt `snapshot`, also eine direkte JSON-Sicht auf den gemeinsamen Host-State über [main.rs](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/crates/infinity_host/src/main.rs>). **Oberflächen** Die technische lokale GUI bleibt bestehen und hängt jetzt auf der neuen gemeinsamen API. In [app.rs](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/crates/infinity_host_ui/src/app.rs>) zeigt sie weiter Mapping/Status/Testmuster, ergänzt um Engine-/Szene-/Übergangsstatus. Sie bleibt bewusst Engineering-orientiert und ist nicht zur kreativen Hauptoberfläche aufgeblasen worden. Die Beispielkonfiguration in [project.example.toml](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/config/project.example.toml>) ist jetzt auch als Software-Spielwiese brauchbarer: mehr Gruppen, mehr kreative Presets und bessere Basis für Look-Entwicklung ohne echte Node-Aktivierung. Die neue API-Ausrichtung ist in [host_api.md](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/docs/host_api.md>) und [architecture.md](</c:/Users/janni/Documents/RFP/Infinity_Vis _Rust/docs/architecture.md>) dokumentiert. **Verifikation** `cargo check` und `cargo test -q` laufen erfolgreich. Zusätzlich läuft `cargo run -p infinity_host -- snapshot --config config/project.example.toml` und liefert den gemeinsamen Host-Snapshot mit Katalog, aktiver Szene, Preview, Node- und Panelstatus. Der nächste sinnvolle Schritt ist jetzt ein echter API-Adapter fuer die kommende Web-UI, also HTTP/WebSocket auf genau diesem Host-Core statt einer frontend-spezifischen Parallelarchitektur.
This commit is contained in:
@@ -4,14 +4,25 @@
|
||||
|
||||
Build a live-capable LED control platform that keeps realtime output deterministic while letting operators change scenes, brightness, tests, and presets without UI jitter leaking into the hot path.
|
||||
|
||||
## Current Priority
|
||||
|
||||
The current delivery order is intentionally software-first:
|
||||
|
||||
1. host-core and shared API
|
||||
2. scene, preset, group, parameter, transition, and simulation model
|
||||
3. web UI as the primary creative surface
|
||||
4. engineering GUI as the technical surface
|
||||
5. external show-control adapters such as grandMA
|
||||
6. hardware validation and real node activation later
|
||||
|
||||
## Layer Split
|
||||
|
||||
1. Control layer
|
||||
- Operator workflow
|
||||
- Presets and topology editing
|
||||
- Monitoring and diagnostics
|
||||
- Shared host API first
|
||||
- Creative web UI later
|
||||
- Engineering GUI already implemented in `crates/infinity_host_ui`
|
||||
- Monitoring, mapping, diagnostics, and admin
|
||||
- Never the timing master for LED output
|
||||
- First vertical slice is implemented as `crates/infinity_host_ui`
|
||||
2. Realtime engine
|
||||
- Owns the monotonic clock
|
||||
- Computes scene state, transitions, and dirty regions
|
||||
@@ -35,6 +46,17 @@ Build a live-capable LED control platform that keeps realtime output determinist
|
||||
|
||||
Preview and telemetry are explicitly degradable. Realtime output is not.
|
||||
|
||||
## Shared Surface Model
|
||||
|
||||
Every surface must talk to the same host API:
|
||||
|
||||
- engineering GUI
|
||||
- future creative web UI
|
||||
- CLI inspection
|
||||
- future grandMA adapter
|
||||
|
||||
The current software-first implementation uses a simulation-backed host API so looks, presets, parameters, and grouping can be developed before real node activation.
|
||||
|
||||
## Modes
|
||||
|
||||
### Distributed Scene Mode
|
||||
@@ -79,7 +101,7 @@ The codebase deliberately blocks activation when these remain unresolved:
|
||||
|
||||
## Planned Next Steps
|
||||
|
||||
1. Expand the new UI slice from mock service to real host transport adapters
|
||||
2. Implement UDP transport with separate control and realtime sockets
|
||||
3. Connect firmware driver backends after hardware validation
|
||||
4. Add deterministic effect registry shared between host planning and firmware capability negotiation
|
||||
1. Add a network-facing adapter for the shared host API and start the web UI
|
||||
2. Expand scene authoring and preset editing on top of the existing simulation core
|
||||
3. Implement transport adapters without coupling them to any single frontend
|
||||
4. Keep hardware activation behind explicit later validation gates
|
||||
|
||||
Reference in New Issue
Block a user