It watches the floor, listens to the machines, and acts — on site, in under a second.
NepalBix is an edge platform, not a camera feature. One box per site runs vision detection, vibration and PLC analytics, and OT network monitoring; decides locally; and drives the outcome — an interlock, an operator alert, a beacon, an encrypted evidence clip — without waiting on a cloud round trip.
Three jobs, one box: it sees, it decides, it acts.
Most video analytics stops at "it saw something." The value is in the two steps after that — deciding whether it matters, and doing something about it. Every capability below runs on the site's own hardware.
SEES Inputs
- Cameras — RTSP/ONVIF, existing or new, fisheye and PTZ included
- Vibration sensors — raw waveform, per asset
- PLC tags — scalar reads polled from the controller
- MQTT — JSON tags today, Sparkplug B on the same path
- The OT network itself — passive traffic capture
- The box's own health — GPU, disk wear, clock, link quality
DECIDES On-site logic
- Detection pods — intrusion, restricted area, abandoned object, fire/smoke, vehicle, falls and fighting
- Analytics pods — people count, directional line crossing, crowd density, dwell heatmaps
- Equipment analytics — ISO 20816 severity, bearing defect frequencies, per-asset anomaly baselines
- The alert gate — schedule, cooldown, then a vision-language model screening out false positives
- Privacy areas — polygon regions redacted before anyone can view them
ACTS Outcomes
- PLC interlock — write straight to the controller that runs the line
- Operator popup — console inbox, acknowledged and reviewed
- Smart pole — beacon, speaker and sign, with quiet hours
- Evidence clip — MP4 cut from the frame buffer, encrypted at rest
- Incident record — severity-classified, reminded, escalated to a phone call
- Audit row — every decision, including the ones it suppressed
What installing this in a plant actually looks like.
No rewiring the floor and no forklift upgrade of the network. The box joins the LAN the cameras are already on, claims itself onto your account, and starts deciding before the cloud console is even involved.
Mount the box in the existing cabinet
A single industrial PC per site, next to the switch the cameras already terminate on.
Point it at the cameras
It discovers and probes them over ONVIF, handles brand quirks, and recovers a camera that drops on its own.
It claims itself onto your account
Zero-touch provisioning with a one-time token — no static IPs to assign, no per-box console work.
Draw zones, lines and privacy areas
From the console, on the camera's own snapshot. Zones drive the detectors; privacy polygons are redacted before any operator sees the frame.
Wire the outcome
Alert only, or a direct write to the line controller over the protocol your floor already speaks — including a Profinet scan to find what is out there.
It runs itself from there
Self-healing on crashes, a watchdog on every service, upgrades approved from the console and rolled back automatically if a step fails.
Eight things it watches for, each its own pod.
Every detector runs as a separate process with its own timers and its own restart. An abandoned-bag timer is minutes long — sharing a process with the alert path meant one restart wiped every bag in flight. They don't share one anymore.
Line intrusion
A real tripwire: it fires on the crossing itself, in under a second, and it knows which way you went.
Restricted area
Someone standing where they shouldn't be. An operator draws the zone; a person who stays past the dwell time raises the alert.
Abandoned object
A bag put down and walked away from. Minutes-long timers, held in their own process so a restart never loses one.
Fire & smoke
Works on pixels, not boxes — colour, the 5–12 Hz flicker band and growth over time. Fire has no bounding box to consume.
Vehicle
Forklifts and trucks where people walk — vehicle classes turned into an actual decision, not just boxes on a wire.
Falls & fighting
Decided from real pose skeletons rather than a box moving oddly — a lone worker on the floor is the case this exists for.
Counting & density
Directional in/out totals, live occupancy, unique visitors, crowd density and dwell heatmaps — the analytics half of the same frame.
Privacy areas
A neighbour's window or a changing-room doorway, redacted as a true polygon before an operator can ever view the frame.
The same box listens to the machines.
Vibration waveforms, PLC tags and MQTT streams land on the same internal bus the detectors publish to — so a bearing going bad and a person in a zone travel the same alert path and land in the same inbox.
Bearing diagnosis, not a threshold
Raw vibration is turned into ISO 20816 severity and matched against the bearing's own defect frequencies from its geometry — it names the failing element, not just "high vibration."
Regime-conditioned anomaly baselines
A press behaves differently at two speeds. Baselines are learned per asset and per operating regime, so a normal change in duty doesn't read as a fault.
PLC tag anomalies
A temperature, a pressure, an RPM — one scalar per poll, watched against its own learned baseline. The controller is read, and written to only when you wire an interlock.
MQTT and the existing historian
Reads JSON tags and waveform envelopes off the broker you already run — Sparkplug B on the same path — and can mirror everything into InfluxDB alongside.
Every alert passes one gate — and the gate is the product.
A detector that cries wolf gets muted by the operator in week two, and then it may as well not exist. Four checks stand between a detection and a human's attention, in this order for a reason. Step through both outcomes below.
Schedule
Outside alerting hours nothing else needs to run, so this check is first.
Cooldown
Deduplicates repeats — but keyed on the subject, so a second person in the same zone is a second alert, not a swallowed one.
VLM screen
A vision-language model looks at the frame and rules out the false positive. Deliberately last — screening a duplicate would be paying for an answer you already had.
Audit
Suppressed alerts produce no popup and no card — so the audit row is the only place an operator can see what the gate hid from them.
What happens the moment it fires.
Five outcomes, wired per zone. A safety interlock and a Slack message are the same event taking different exits.
Stop the line
A direct write to the controller running the cell, over the protocol it already speaks. No cloud, no operator, no internet.
Page an operator
A popup in the console inbox with the frame attached, acknowledged and reviewed — plus Slack, on its own channel.
Light up the pole
Beacon, speaker and message sign on smart-pole street furniture — with quiet hours on audio and an auto-clear timer so nothing is left flashing.
Cut the evidence
An MP4 built from the rolling frame buffer around the event — including the seconds before it — and encrypted at rest.
Raise an incident
Filtered, classified and severity-stamped into the incident table, with reminders that re-ping — and a phone call when it's critical.
Alerts and audit data travel separate roads on purpose.
A site on a metered link cannot afford to ship every detection as it happens — but nothing about saving bandwidth is allowed to delay an alert. So they are two paths, not one path with a setting.
~200 ms
searchable
A scene that hasn't materially changed isn't re-reported — matched by overlap per label, with a keep-alive so a static camera never goes silent. Roughly a 10× cut in requests.
Each site is pinned to a profile — normal, thin, or 2G — which sets snapshot intervals and push cadence. A rural link is never asked to behave like an office one.
Audit rows accumulate on disk under a hard cap and are trimmed oldest-first, so a week-long outage fills a known amount of disk and nothing else.
The local copy is removed only after cloud storage confirms the upload. A failed ship is retried, never dropped.
It watches the network the PLCs are on — without ever touching it.
On a plant network an unexpected packet can reach a live controller. So the monitor is strictly passive: it listens in promiscuous mode on one interface, parses what it sees, and never transmits or probes.
It never actively scans, never sends a probe, and never writes to the monitored segment. The safety argument is that it cannot, not that it is configured not to.
Ethernet, ARP, IPv4, TCP and UDP frames — enough to see new devices appearing, ARP anomalies and traffic that doesn't belong on an OT segment.
Findings go through the same gate as a person in a zone, so a suspicious device lands in the operator inbox rather than a log nobody opens.
A separate Profinet scan can enumerate what's actually on the network when you're commissioning — run deliberately, not continuously.
One site or two hundred, it's the same screen.
The difference between a pilot and a product is what happens on day 400, at site 180, when a camera dies at 3am and nobody is on the plane. Most of this platform is that.
Zero-touch provisioning
A box claims itself with a one-time token and pulls its whole configuration. No console work per site.
Approved upgrades, automatic rollback
Bundles are registered centrally, rollouts are raised and approved as a request, each step reports back, and a failed step rolls the box back on its own.
It heals itself
A watchdog per service, a crash breaker that stops restart loops, a repair budget so a sick box doesn't thrash, and camera and link recovery that run without anyone asking.
Diagnostics on request
Raise a diagnostic from the console and the box builds and uploads a bundle — logs, health, config — instead of somebody driving to the site.
Evidence on request
Ask for a clip or a log window from the console; the box exports it, signs it into storage, and the console hands back a link.
Its own health is a signal
GPU faults, disk wear, clock drift, camera FPS hitting zero — all monitored, all routed to the same alerting, with error logs raised fleet-wide.
New models are proven against the live one before they replace it.
Swapping a detection model on a plant floor is a safety change, not a deployment. So a candidate runs beside the live pipeline first, on the same real events, and has to produce evidence.
The candidate consumes the same events the live pods already published and reports counters and disagreements — what it would have called differently, on your footage, not a benchmark.
The box measures when the scene it sees has moved away from what the model was trained on — new lighting, a rebuilt line, a repositioned camera.
Operators label incidents in the console as they review them; those labels and pseudo-labelled clips become the corpus the next candidate trains on.
A trial produces a record a human approves or abandons — the same request-and-approval workflow that governs upgrades.
Answering "did we ever see that?" weeks later.
The archive is not a video library you scrub through. It is a searchable record of every decision the system made — including the ones it decided not to show anyone.
Site, camera, label and date range, queried straight from the console over the archive in cloud storage. Seconds, not an export ticket.
The gate's decisions are auditable. If an operator never saw something, there is a row explaining which check stopped it.
Evidence keeps the pre-event seconds, is encrypted with a key the edge and console share, and is exported only against a request.
Redaction polygons are applied on the box before a frame is stored or shown — the unredacted pixels never leave the site.
| TIME | CAMERA | LABEL | OUTCOME |
|---|---|---|---|
| 09-16 22:41:03 | CAM-02 | person | delivered |
| 09-16 22:41:07 | CAM-02 | person | suppressed · cooldown |
| 09-15 03:12:47 | CAM-07 | vehicle | delivered |
| 09-15 03:11:22 | CAM-07 | person | suppressed · VLM |
See it running on your own floor.
One box, your cameras, one zone drawn on a real camera view — that is the whole pilot. Everything above is already in the console.