The Nyx project introduces a protocol, backward-compatible with INDI 1.7 (and indiserver), for controlling scientific hardware.
It enhances INDI by supporting multiple independent nodes, each embedding its own protocol stack. Nodes communicate using JSON over MQTT for slow control, and through a dedicated streaming system for real-time visualization. An alternative INDI compatibility mode, based on XML over TCP, is also supported. This architecture provides flexibility and scalability for distributed systems.
The core library is written in C11 and targets POSIX, Windows, and Arduino environments, with no external dependencies; Zlib is only required when compression is enabled. Its low footprint makes Nyx suitable for deployment on microcontrollers (ESP32, Cortex-M, …).
The Nyx project also includes Nyx Lab, an integrated desktop and web interface for controlling Nyx and INDI devices through an addon-based design.
Dashboard designer
With Nyx Lab, graphically design custom slow control and visualization dashboards.
Transparent INDI integration
Existing INDI drivers can be used transparently via INDI → Nyx Bridge.
Nyx Lab addons
Nyx Lab can be extended through addons, as illustrated by this sky map.