Drop the open-source agent next to your camera, draw your zones and triggers in the dashboard, and Upstream streams typed events into your stack. RTSP ingestion, GPU inference, tracking, and event delivery are handled — so you ship product logic instead of pipelines.
The whole pipeline — ingest, inference, event logic, delivery — runs as managed infrastructure. You configure it; we keep it flowing.
Point an RTSP, WebRTC, or ONVIF camera at Upstream. Edge devices, IP cameras, drones — we ingest them all at the source.
Draw tracking zones, pick detection models, set thresholds and dwell rules in a hosted studio. No model wrangling required.
Compose conditions across detections, zones, and time — “forklift in aisle 3 for >30s” — without writing infrastructure code.
Push to your webhook, queue, database, or workflow. Upstream guarantees delivery; you decide what happens downstream.
RTSP ingestion, GPU inference, orchestration, scaling, monitoring — all of the plumbing that usually takes six months to build, run as a hosted service.
Polygonal zones, virtual tripwires, dwell timers and entry/exit logic — all editable in the browser, versioned, and deployed in one click.
Compose typed events across cameras, zones, and time. Upstream handles fan-out, retries, and ordering — your handlers stay simple.
GPU autoscaling, regional pinning, monitoring — without an MLOps team.
// Triggered when a forklift dwells in a restricted zone import { upstream } from "@upstream/sdk"; export const onEvent = upstream.on("forklift.dwell", async (e) => { if (e.zone === "aisle_3" && e.duration_s > 30) { await alerts.page({ team: "floor-safety", camera: e.camera_id, // signed, 5-min URL to the clip frame preview: e.frame({ format: "jpeg", w: 1280 }), }); } }); // Latency: 84ms · Delivery: at-least-once · Region: us-west-2
Teams use Upstream wherever a stream of pixels needs to become a stream of business events.

Spin up a free workspace, point a camera at it, and have a working event flowing into your stack in under ten minutes.