The nine modalities
Voice
Calls + bidirectional audio bridge. Originate, transfer, hangup. Opus / PCM16
/ G.711. Bridges PSTN/SIP and AI agents.
Streams
Live one-to-many broadcast + VOD. RTMP / SRT / WHIP / TUS2 ingest, CMAF
packaging, signed playback over WebTransport.
Robotics
Topic pub/sub for robot fleets. ROS 2 (CDR), Zenoh-over-QUIC, and MQTT onto
one mesh. Telemetry / command convention baked in.
Games
Multiplayer rooms with state (server→all), input (player→server), event
(any→any) channels.
Data
MQTT-style typed pub/sub. Topic filters with
+ / #. Retained messages.
No broker — the relay is the fan-out.Netcode (Unity)
Drop-in transport for Netcode for GameObjects / Entities. Same wire model as
Games, behind the Unity Transport API.
Crypto
Block-dissemination network: low-latency Solana feeds in, native TPU
transaction delivery out. QUIC-only.
Tunnel
Expose a local TCP/HTTP service through a QUIC data plane. Remote desktop
rides the same raw-QUIC transport.
Inference
Duplex audio into one speech-to-speech model over a single QUIC connection.
Turn detection built in.
The substrate
Under every modality sits the same thing: MoQT (Media over QUIC Transport) multiplexed over a single QUIC connection, fanned out by the relay mesh. The data plane runs an AF_XDP kernel-bypass fast path with lock-free mcache / dcache rings on a shard-per-core engine, so adding modalities to one app costs one connection, not one stack per product. What this means in practice:- One auth path. A single tenant token authorizes every modality you use.
- One connection. Voice + games + data side-by-side in one process share the same QUIC link — no per-modality handshake tax.
- One relay mesh. Browsers, native SDKs, and Unity clients all reach the same edge POPs.
- One scaling story. When the relay scales, every modality scales with it.
Each modality, four pages
Every modality is documented the same way:| Page | What’s in it |
|---|---|
| Details | The wire model, lanes/QoS, codecs, when to use it, and the data-flow diagram. |
| SDK Methods | The typed SDK surface — imports, classes, every public method and event. |
| Cookbook | Short, copy-pasteable “how do I X” recipes. |
| Recipes | Longer end-to-end worked examples that combine several methods. |
When to drop below a modality
The modalities cover the common shapes. When you have a non-shape — a custom protocol, a research experiment, a transport another codebase already uses — import@clutchcall/sdk/moqt and work with MoqtClient directly. You get
publishFrame / publishAudio / publishVideo / subscribe* and the same
auto-reconnect, capability routing, and relay fan-out the modalities use. See
Realtime Tracks.
