Reference

QuadShadow Wire Protocol — v0 (alpha)

Deliberately minimal: one persistent TCP connection, length-prefixed binary frames, strict request→response alternation. v0 is what we've measured end-to-end (~1.0 ms added over same-region VPC); a WebRTC/UDP transport for lossy last-hops is on the roadmap and will version as v1.

Transport

  • TCP, one long-lived connection per robot.
  • TCP_NODELAY must be set on both ends. Nagle's algorithm will otherwise add up to 40 ms — more than our entire inference budget.
  • All integers big-endian. Floats are IEEE-754.
  • One request in flight at a time per connection (pipelining is undefined in v0).

Frames

Request (robot → server)

+----------------+------------------------+
| len: uint32 BE | payload: len bytes     |
+----------------+------------------------+

payload is the serialized observation: camera frames (JPEG-compressed) + proprioceptive state + task string. Typical size ~25 KB for 3×256×256 JPEG frames + state vector. Exact observation schema is per-policy and agreed at onboarding.

Response (server → robot)

+---------------------+----------------+------------------------+
| server_ms: float64  | len: uint32 BE | actions: len bytes     |
+---------------------+----------------+------------------------+
  • server_ms — server-side inference time for this request, in milliseconds. Subtract from your measured end-to-end to get your network cost; alert if the gap drifts.
  • actions — the action chunk: float32 array, row-major, [chunk_size × action_dim] (SmolVLA: 50 × action_dim). Typical size ~1.4 KB.

Connection lifecycle

  • Server accepts, then serves request/response pairs until the client closes or the connection errors; reconnect with simple exponential backoff (100 ms → 2 s cap).
  • First 5–10 inferences after a cold connection may be slower (CUDA graph/cache warm-up); discard them from latency stats and don't gate robot motion on them.

What v0 does not have (by design, alpha)

  • No auth inside the protocol — endpoints are network-isolated per partner (VPC/IP allowlist) during alpha. Token auth arrives with v1.
  • No streaming partial chunks, no server push, no multiplexing.
  • No compression negotiation — JPEG your frames client-side.

Reference implementations

A reference server/client pair — the exact code used in our latency measurements — is provided to design partners during onboarding.