# Introduction

> Polyglot SDK for voice, streams, robotics, games, and data — five modalities over one MoQT relay mesh.

ClutchCall is a real-time platform built around five typed modalities —
**voice**, **streams**, **robotics**, **games**, and **data** — all riding the
same MoQT (Media-over-QUIC Transport) relay mesh underneath. Native,
hermetically-built SDKs ship for **TypeScript, Python, Go, Rust, Java, and
.NET**, plus a Unity UPM transport package. All bindings share one C++23 core
that emits the same wire envelope, so a Python publisher, a browser
subscriber, and a Unity client all interoperate without translation.

## What's in this site

  - **[Modalities](/modalities/overview)** — The five-modality model — voice + streams + robotics + games + data —
    and when to use each.
  - **[Quickstart](/quickstart)** — Get a working app in under five minutes — pick a modality and go.
  - **[SDK Reference](/sdks/overview)** — Per-language reference: every modality, every method, end-to-end examples.
  - **[Architecture](/concepts/architecture)** — QUIC, WebTransport, MoQT, the C++ core, and the relay mesh.

## Modalities at a glance

| Modality      | Use it for                                              | Concept                       |
| ------------- | ------------------------------------------------------- | ----------------------------- |
| **Voice**     | Calls (PSTN/SIP/AI) + audio bridge + agent attach       | [/modalities/voice/details](/modalities/voice/details)         |
| **Streams**   | Live broadcasts (one→many) + signed playback URLs       | [/modalities/streams/details](/modalities/streams/details)     |
| **Robotics**  | Topic pub/sub for a robot fleet (ROS 2 / Zenoh-over-QUIC) | [/modalities/robotics/details](/modalities/robotics/details) |
| **Games**     | Multiplayer rooms with state/input/event channels        | [/modalities/games/details](/modalities/games/details)         |
| **Data**      | MQTT-style typed pub/sub (`+` / `#` filters, retain)     | [/modalities/data/details](/modalities/data/details)           |

Plus:

| Surface       | When                                                    |
| ------------- | ------------------------------------------------------- |
| **Realtime Tracks** ([MoQT](/concepts/realtime-tracks)) | Drop below the typed modalities — raw publish/subscribe |
| **Netcode (Unity)** ([UPM](/modalities/netcode/details)) | Drop-in for `com.unity.transport`; Netcode for GameObjects / Entities |

## One substrate

The same call can flow through any combination of runtimes:

```
Browser tab  ──WebTransport──▶  ┐
Python bot   ──QUIC──────────▶  ├──▶  ClutchCall relay mesh  ──▶  fan-out
Go batcher   ──QUIC──────────▶  │
Unity client ──QUIC──────────▶  ┘
```

All speak MoQT directly. The relay routes by **capability** (an
open-ended intent string like `voice/opus`, `game.state`,
`ros.reliable`) so a track can reach any consumer that registered for
that capability — without the publisher knowing they exist.

## Polyglot, but one substrate

| Surface       | Best for                          | Underlying transport              |
| ------------- | --------------------------------- | --------------------------------- |
| Browser (TS)  | Agent UIs, click-to-dial, live broadcasts | WebTransport over HTTP/3      |
| Node.js (TS)  | Server-side dialers, ingest, brokers | QUIC via WASM + WebTransport   |
| Python        | LLM/voice agents, data publishers | QUIC via aioquic + FFI            |
| Go            | Concurrent batch services         | QUIC via quic-go + CGO            |
| Rust          | High-volume edge orchestrators    | QUIC via quinn + libloading       |
| Java          | Enterprise / JVM stacks           | QUIC via Netty incubator          |
| .NET / C#     | Unity, Windows tooling            | `System.Net.Quic` + P/Invoke      |
| Unity         | Netcode for GameObjects / Entities | UPM package over the .NET runtime |

All SDKs are built hermetically — same C++ core, same wire envelope, same
modality conventions. Cross-language calls "just work."
