RGB demos

real-time video sessions for robots, cameras and models

A session is a graph

Cameras and robots join. Models from a catalog are attached to their video while the session runs, under a name you choose; every attach is admitted onto a node with room, or refused while the session keeps running. Results come back as data on the same clock as the video. No pipelines, nothing deployed.

const session = await client.sessions.create({ name: 'warehouse-demo', durationSeconds: 3600 });
const cam     = await session.join({ as: 'camera', id: 'cam0', publish: ['video'] });
const objects = await session.attach('sam3-detector-v1', { to: 'cam0', as: 'objects', params: { prompts: ['person'] } });
const alerts  = await session.attach('qwen-monitor-v1',  { to: 'cam0', as: 'alerts',  params: { rules: ['a fire broke out'] } });
objects.watch(drawBoxes);
alerts.watch((e) => page(`${e.rule}: ${e.reason}`));

The same in Python, with the records and the full API: llms.txt. The pages below use the real JS SDK (lib/rgb-sdk.js) against the control plane at /api/v1 on this host.

Demo 1: open-vocabulary detection

Type what to look for. Boxes and track IDs come back as data on a separate track, drawn by the page.

open demo 1

Demo 2: natural-language alerts

Write rules in plain language. A cheap detector watches every frame; a small VLM screens, a larger one confirms and explains.

open demo 2

Demo 3: an agent drives a world, a person takes over

A simulated world joins as a participant (video out, commands in). A VLM agent attached to it drives from a plain-language instruction; hold the arrow keys and you have the wheel. Same shape for a world model later.

open demo 3

Demo 4: model-aware transport

Four cameras on one constrained link. A trigger moves the bandwidth to one camera, forces a keyframe, and backfills its HD pre-roll behind the live stream. The one demo that needs the transport to be MoQ.

open demo 4

Fleet

The nodes serving models right now, their slots and heartbeats, and every session's graph with where each attachment runs.

open fleet

Pages take ?session=…&cam=…. Live state of the control plane: nodes · sessions · catalog (these need the API key as a bearer token; the pages carry it).