Zone dwell & capacity
Mark a queue lane, a waiting area or a section and watch live occupancy; an alert fires when a zone stays over its limit past a configurable dwell, so staff can open a till or a second lane.
Track how many people or vehicles are inside each zone, how long they stay, and alert when a zone stays over its limit.
Interface preview coming soon
Counting a total across a whole frame hides what you actually care about: which area is busy, for how long, and whether it is over capacity right now. Occupancy answers that per zone — a waiting room, a parking bay, a queue lane — with live dwell sessions and a limit alert, straight off the camera you already have.
Mark a queue lane, a waiting area or a section and watch live occupancy; an alert fires when a zone stays over its limit past a configurable dwell, so staff can open a till or a second lane.
Switch a zone to detect vehicles instead of people to see which bays or spots are taken and how long each stay lasts — no in-ground sensors.
Session start/end per zone builds an honest picture of how meeting rooms, desks or common areas are actually used over the day.
A worker samples the app's live stream over HLS with an adaptive sampler. You draw multi-point polygon zones on a live frame in the dashboard and tag each one; geometry persists per stream as normalized points.
Person or vehicle detection with ByteTrack tracking opens a dwell session when a track enters a zone and closes it when it leaves — with a count-based alert when a zone stays over its limit.
occupancy.session_started, occupancy.session_ended and occupancy.alert flow through the app's HMAC-signed callbacks (webhook + MQTT), each carrying the zone, its tag and the kind counted.
Live sessions and today's events show in the app tab; every session persists in the app's own occupancy database for your reporting and escalation.
Declared in the plugin manifest and relayed through the app's HMAC-signed callbacks (webhook + MQTT). Anything a worker tries to emit that is not on this list is rejected — no core-event spoofing.
Numbers are the plugin authors' honest measurements, not marketing. GPU is optional on every vision plugin except where noted.
Every Studio app is a first-class application, not a config modal — and it does not have to live inside StreamHub.
Opens as its own page inside the tenant app — zones, live panels, history and settings on one surface, not squeezed into a dialog.
Keeps its state in a dedicated per-app SQLite database — reads, alerts, occupancy and evidence rows — that you own and can query.
Download the app as a self-contained bundle — worker, Dockerfile, compose and an env template — to self-host on your own infra and extend, talking back over the REST API and signed webhooks.
Tell us what you are monitoring and we will scope the right apps, wire them into your systems and run them with you. The software is open source — the deployment and operation is what we do.