How it works: a detector watches every frame for objects the rules mention; when they appear, vanish or change, a small VLM screens each rule on the last 3 s of frames, and a larger VLM confirms and explains. Only confirmed verdicts become events.
Or join this browser's camera as the source
const alerts = await session.attach('qwen-monitor-v1', { to: 'cam0', as: 'alerts', params: { rules } });
alerts.watch((e) => showAlert(`${e.rule} — ${e.reason}`)); // confirmed events only
alerts.outputs.checks.watch((c) => timeline.add(c)); // every VLM call