Local AI that knows who's home, what your driveway just saw, and which sound was a glass break instead of a dropped mug. No cloud uploads. No subscription. Self-hosted if you have the GPU for it. Cloud providers built in for everyone else.
Most home AI cameras tie identity to a single clean face shot. If the camera never sees a face, the person is a stranger forever. Nurby runs a parallel body identity pipeline alongside face recognition.
Closed-loop visual servoing on ONVIF ContinuousMove. The closer the target gets to centre, the slower the camera moves.
Nurby auto-detects privacy-sensitive objects and applies a blur before any downstream pipeline sees the frame.
Seventeen models across YOLOv8, YOLO11, YOLO11-seg, YOLOv8 OIV7, and YOLO-World v1 + v2. Each tagged with speed, accuracy, and GPU hints.
Ollama-first deployment. The provider catalog and a per-call precedence chain mean expensive models run only where they matter.
Triggers are cards with icons, not a dropdown of column names. The composed rule renders as a single sentence in English.
Tripwires and loiter zones are drawn on top of the live camera feed, not in a separate diagram with abstract coordinates.
Four recording modes — off, always, on-motion, on-object, clip — with a pre/post buffer so the event sits in the middle.
A persistent identity-anchored story that spans cameras. One Journey for a front-door → hallway → kitchen walk, not three observations.
PANNs CNN14 turns the microphone into a 527-class semantic signal: baby cry, dog bark, glass break, smoke alarm, doorbell, knock, footsteps, speech, music, alarm clock.
"Dog in the kitchen last night." Three results with thumbnails. The query embeds against observation description embeddings (Vector(384)) in pgvector.
One configurable local hour fires build_daily_digest. Visitors, packages, vehicles, audio events, active cameras. Structured facts plus an LLM narrative. Need a week or a month? summarize_window chunks the range, builds deterministic mini-summaries per chunk at zero LLM cost, then runs one budget-gated LLM pass for the final synthesis.
A collapsible filter panel keeps event cards in context. Filter by camera, label, person, time window, provider. The filter state lives in the URL so links are shareable.
Faces are a starting point, not the only signal. Unknown clusters surface for naming; body-only clusters can be linked or named in one click.
Invite keys, per-camera grants and supported SSO providers. The right family member sees the right cameras and nothing else.
Local inference, smart blur, pose-aware zones, and self-host. Privacy isn't a toggle, it's the default posture.
Rules are JSON. Inspectable, version-controllable, exportable. The reinterpret endpoint accepts any provider so models can be swapped from outside the UI.
RTSP, ONVIF (PTZ ContinuousMove, Stop, GetPresets, GotoPreset), MediaMTX for WebRTC publish, Ollama for local inference, OpenAI, Anthropic, Gemini, Twilio (via API call action), SMTP, generic webhooks. Phone-as-mic and network mic camera types for audio-only sources.
Dark-first with no-flash theme switching. Hover PTZ overlay. Live observation cards floating off tiles. Camera personas as one-click presets.
Sticky failure flags, hardware autodetection, cluster decay, fusion sweeper, migrations on startup. The platform behaves itself.
Free and open. Local VLM inference needs a serious GPU. Think NVIDIA Spark or a workstation-class card with enough VRAM for a 200B-parameter model. No GPU? Cloud providers work out of the box.