Security cameras have a privacy problem hiding in plain sight: to be “smart”, most of them stream your front door to a company’s servers, where your footage becomes someone else’s data to keep. The useful part (spotting a person, flagging something wrong) and the safe part (nobody else sees your home) pull apart.
Running the AI on the device closes that gap. To show what that looks like, we built QVAC Smart Camera: an illustrative example, not a product, that watches a scene, understands what is in it, and decides whether to raise an alarm, entirely on-device. It is built on the QVAC SDK, and the point is the pattern, so you can clone it and make it your own.
Repo: github.com/tetherto/qvac-examples
What the demo does
Point it at a video clip or a webcam:
- It draws colour-coded boxes around people, vehicles, animals, and bags as they move through the frame.
- When a person appears, a vision-language model judges the scene. A resident walking up in daylight reads as normal. A masked figure prowling a parked car at night is flagged high risk, and an on-screen alert, a border flash, and an alarm sound fire at once.
- Every event is logged with a timestamp, a cropped thumbnail, and a one-sentence description of what happened.
The capability: on-device vision
This demo uses QVAC’s on-device vision stack: real-time object detection plus a vision-language model that can look at a frame and reason about it in plain language. Two models cooperate, both 100% local:
- YOLOv10-M (ONNX) for fast object boxes, through @qvac/onnx.
- Qwen3-VL 2B (GGUF) for the scene description and the NORMAL / ALERT verdict, through the QVAC SDK.
The risk verdict is a hybrid, so it stays reliable on a small model: the vision-language model writes the reason, and a simple deterministic rule (a person right next to a vehicle, at night, inferred from frame brightness) guarantees the alarm fires on the classic “someone at the car in the dark” case. The browser only smooths boxes and checks brightness. No external CDN, no cloud call.
Why local makes sense here
- Your footage stays put. Frames never leave the device, so there is no stream to intercept, no cloud library of your home, nothing to subscribe to.
- Works offline. No network, no problem.
- Free to run. No per-event or monthly cloud bill. The models download once and cache.
Recommended hardware
- RAM: 8 GB minimum, 16 GB comfortable.
- Disk: about 1.6 GB for the models, downloaded once.
- GPU: optional. Apple Silicon (CoreML / Metal) or Windows (DirectML) accelerate it; CPU works, slower.
- OS / runtime: macOS 13+, Windows 10+, or Linux; Node.js 20+.
Not sure your machine can handle it? Run this:
npx -y @qvac/cli doctor.
Get it
git clone https://github.com/tetherto/qvac-examples
cd qvac-examples/qvac-smart-camera
npm install
# generate the object model once (see models/README.md)
npm start
Open http://localhost:3080, choose a clip or a webcam, pick what to alert on, and start monitoring. QVAC is open source (Apache 2.0) and free. Docs: docs.qvac.tether.io.
A note on what this is
This is not a QVAC product and not a real security or surveillance system. It is an illustrative example, provided “as is”, to show what a local AI app can do with the QVAC SDK. You alone are responsible for how you use it, including complying with applicable privacy, recording, and surveillance laws and obtaining any consent required.