ResoniteIO¶

ResoniteIO is a bidirectional IPC bridge between Resonite and
Python. A C# mod running inside the Resonite client (ResoniteIO, loaded via BepisLoader)
and a Python package (resoio) talk to each other over gRPC on a Unix Domain Socket.
Linux only
ResoniteIO targets Resonite running on Linux through Steam Play (Proton). Windows is not supported. See Installation for details.
Design¶
Each Resonite capability is exposed as an independent, asynchronous modality stream,
each carrying its own timestamps. There is no global clock or step() barrier, so any
synchronization you need is done on the receiving side — and you can use any modality on its
own, without the others.
- Camera / Speaker — Resonite → Python (server-streaming): vision and audio out.
- Microphone / Locomotion — Python → Resonite (client-streaming): voice in, movement.
- Connection / Info / Grabber / Display / World / ContextMenu / Dash / Inventory / Cursor / Lifecycle — request/response (unary): liveness and server info, grabbing objects, reading the display, navigating worlds, driving the UI, and graceful shutdown.
Two-layer C# design¶
The C# side is split into two layers:
ResoniteIO.Core— a pure library with zero dependency on Resonite. It holds the gRPC server, the per-modality services, and the domain logic.ResoniteIO— a thin BepInEx plugin that only does engine bridging (theFrooxEngine<Modality>Bridgeadapters).
The dependency direction is strictly Core ← Mod. The Python client (resoio) is also
Resonite-independent.
Where to go next¶
- Installation — how to install the mod and the Python client.
- Quick Start — your first
pingand a camera stream. - Architecture › Overview — Core/Mod layering and transport.
- Architecture › Modalities — the full modality matrix.
- API Reference — the
resoioPython client API. - CLI — the
resoiocommand-line tool. - Examples — minimal runnable scripts, one per modality.
License¶
MIT.