Robotics
Robots have a lot of cameras. They’re basically cameras with legs or wheels or pinchers or spinning blades or you get the idea.
Teleoperation is becoming less and less relevant, but something still needs to monitor the little guys. A human, a fleet dashboard, an AI model looking for trouble, and/or an archive for the inevitable post-mortem.
Now imagine operating on the worst networks, or in the middle of the ocean, with no fear.
Pull, not Push
Existing contribution protocols (ex. WebRTC, SRT, RTMP) are push-based. The robot constantly transmits everything to a server, watched or not. Not great when you’ve got 9 cameras and StarLink is expensive.
MoQ is pull-based.
Each camera is a broadcast, split into tracks like 1080p, 360p, audio and telemetry.
Note that last one; MoQ is not just for Media, but any live data.
The benefit of pull is that nothing is transmitted until somebody subscribes to a track.
Imagine an AI model that only subscribes to 360p from each camera. If it spots a kraken, then it subscribes to the 1080p track from that camera. Camera 7 doesn’t touch the uplink until somebody cares about camera 7.
Shit Networks
Robots tend to be somewhere with a terrible network: cellular, satellite, mesh radio, or nothing at all. Your bandwidth will fluctuate, and something has to give.
You decide what gives. Every subscription has a priority, and they all cooperate over one QUIC connection. Controls before audio before telemetry before the kraken cam before the rest of the cameras. When the link degrades, the least important stuff waits.
And it waits, it doesn’t disappear. Real-time RTP stacks like WebRTC give up on a frame after a short deadline, and it’s gone forever. MoQ sends the newest frames first and keeps the old ones in RAM, up to a TTL.
Each subscriber decides how long it’s willing to wait:
- The operator waits 100ms, skipping ahead to stay real-time.
- The AI model waits a second, because it’d rather see every frame.
- The recorder waits 30 seconds, backfilling once the link recovers.
The result is a lossy live feed AND a pristine VOD from the same stream, as long as the link recovers before the recorder’s deadline.
Bonded Pairs
Near the coast? Use cellular and satellite.
QUIC supports path migration, so you can switch from WiFi to cellular to satellite without dropping the connection. There’s also a multi-path extension that uses multiple paths at the same time.
Or go up a layer and open multiple MoQ connections: P2P via iroh, a self-hosted relay, a public CDN. The robot announces its broadcasts on all of them, and every subscription takes the best available path. Idle connections cost nothing, because nothing flows until somebody subscribes.
Fan Out
If 100 viewers subscribe to the same track, moq-relay merges them into a single upstream subscription. The robot serves at most one copy of each track, no matter how many people are watching.
Relays connect to each other and form a cluster, handling discovery, routing, and failover. Self-host a relay on the robot or the base station to keep everything on your network. Then cluster it with a public CDN like moq.pro or Cloudflare when the whole world wants to watch.
Not Just Media
There’s nothing special about media. It’s just timestamped, delta-encoded data, and so is everything else a robot produces.
- The camera? A track.
- The GPS? A track.
- The joystick? A track.
- The killswitch? A track, and every robot in the fleet can subscribe to it.
Stamp it all with the same clock and send it over the same connection, so you can put humpty back together on the other side. WebRTC botches this: data channels have their own congestion control that fights the media instead of cooperating with it.
Controls work the same way, just backwards.
The operator publishes a controls track, and the robot subscribes to it.
Lockout, handoff, or anarchy is your application’s call, not the relay’s.
The MoQ Boy demo does exactly this, with a GameBoy standing in for the robot.
In Production
Saronic
MoQ is the primary video system across its autonomous vessels. Transmits multiple cameras/qualities over Starlink.
Evolve Robotics
Using MoQ extensively for VR teleoperation. Point clouds, controls, the whole works, all transmitted over MoQ.
REDACTED
A major government contractor flying drones around with MoQ. That's all we're legally allowed to say.
REDACTED
A defense contractor flying drones across international borders with Starlink. The drone controls are also transmitted via MoQ.
Yours?
That’s only the companies willing to tell me they’re using the moq.dev libraries. Running MoQ on something that moves? Tell us, we’d love to brag about it. Or don’t, and we’ll add another black bar.