All Studio apps
Vision & CCTV

Perimeter

armed schedule · evidence

Alert on anyone entering a restricted zone while the perimeter is armed — with snapshot and clip evidence.

streamhub.studio/studio/perimeter
Perimeter
The problem

A yard, a fence line, a loading dock or a no-go machine cell is only "restricted" if someone is watching it — and nobody watches a quiet camera at 3 a.m. Perimeter arms itself on a schedule (or on demand), raises an alert the moment a person is inside a zone, and keeps the evidence, so the response is about acting on the alert rather than scrubbing footage after the fact.

Use cases

Security

After-hours intrusion

Arm the yard or warehouse overnight and on weekends; any person in a restricted zone fires perimeter.intrusion with a snapshot and a short clip attached.

Industrial / HSE

Danger-zone entry

Mark a machine cell or hazardous area and alert whenever someone steps inside it, armed during operating hours instead of only after dark.

Access control

Loading-dock & fence-line watch

An acknowledgeable alert queue means an operator can work a night of alerts and mark them handled; armed state and alerts are readable only when authenticated.

How it works

Input

Live HLS + restricted zones

A worker watches the camera over HLS. You draw the restricted zones in the dashboard and set the arm schedule (IANA timezone, weekend rules) or flip a manual arm/disarm toggle.

Detect

Person-in-zone while armed

YOLOv8 person detection tests each person's foot point against the zones; hits only fire while armed. A per-zone cooldown bounds the alert rate.

Signed callback

intrusion + evidence

perimeter.intrusion POSTs to your webhook (HMAC-signed when a secret is set) and stores on-disk evidence: a JPEG plus a no-re-encode clip of the last segments.

Your system

Alert queue + acknowledge

Alerts land in an acknowledgeable queue in the dashboard tab; acknowledging marks that alert and everything older as handled.

Events it emits

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.

perimeter.intrusion

Scope & limits

  • It detects a person in a zone while armed — it is not a full VMS and does not classify intent, vehicles or objects.
  • Evidence clips need the local HLS directory; a remote edge worker records snapshot-only evidence.
  • Set the timezone — the arm schedule follows it, and a Docker host defaults to UTC.

Minimum requirements

  • CPU-only default: yolov8n at 1–2 fps costs ~0.5–1 core per camera (intrusion needs recent frames, not every frame). Budget ~1 core + 2 GB RAM per watched room.
  • Small ARM edge boxes (Raspberry Pi class) run yolov8n at 0.3–1 fps — a couple of seconds of latency is still well inside a useful response window.
  • Disk: evidence JPEGs ~100–400 KB each; -c copy clips ~1–4 MB per 10 s. The cooldown bounds the write rate. GPU optional.

Numbers are the plugin authors' honest measurements, not marketing. GPU is optional on every vision plugin except where noted.

Runs as a full app

Every Studio app is a first-class application, not a config modal — and it does not have to live inside StreamHub.

Full-page dashboard view

Opens as its own page inside the tenant app — zones, live panels, history and settings on one surface, not squeezed into a dialog.

Its own database

Keeps its state in a dedicated per-app SQLite database — reads, alerts, occupancy and evidence rows — that you own and can query.

Exportable bundle

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.

Have cameras or streams to put to work?

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.