# Infinity Vis Rust Production-oriented greenfield architecture for a low-latency LED control system that targets: - 6 ESP32-N16R8 nodes - 3 physical LED outputs per node - 106 LEDs per output - 18 logical panels and 1908 LEDs total The repository is intentionally structured around hard separation of concerns: - `crates/infinity_config`: versioned project configuration and validation - `crates/infinity_protocol`: shared control and realtime protocol model - `crates/infinity_host`: host-side core library, simulation engine, scene/preset API, and CLI - `crates/infinity_host_ui`: native Rust desktop engineering GUI for mapping, diagnostics, and admin - `firmware/esp32_node`: ESP-IDF firmware skeleton with explicit driver abstraction - `docs/`: architecture, protocol, validation, deployment, testing, and acceptance artifacts - `config/`: example configuration files Current software priority: - stable host-core first - shared host API for every surface - simulation and mock-first creative workflow - web UI as the primary creative surface - engineering GUI for technical operation - grandMA planned later as an external show-control adapter, not as the system core The current baseline is intentionally strict about unresolved hardware facts. `UART 6`, `UART 5`, and `UART 4` are treated as unvalidated labels until the real electrical meaning is confirmed. ## Quick Start 1. Install a current Rust toolchain. 2. Review the open validation checklist in [docs/validation_open_points.md](docs/validation_open_points.md). 3. Start from [config/project.example.toml](config/project.example.toml). 4. Inspect the software-first host snapshot with `cargo run -p infinity_host -- snapshot --config config/project.example.toml`. 5. Start the versioned host API plus creative web UI with `cargo run -p infinity_host_api -- --config config/project.example.toml --bind 127.0.0.1:9001`. 6. Open `http://127.0.0.1:9001/` for the creative surface. 7. Start the engineering GUI with `cargo run -p infinity_host_ui`. 8. Use the host CLI to validate the project config before attempting activation. ## Docs - [Architecture](docs/architecture.md) - [Host API](docs/host_api.md) - [Protocol](docs/protocol.md) - [Config Schema](docs/config_schema.md) - [Build and Deploy](docs/build_and_deploy.md) - [Testing](docs/testing.md) - [Acceptance Template](docs/acceptance_template.md) - [Legacy XML Reference](docs/legacy_xml_reference.md)