Farm 2026 Β· Field Stationv1.37.0──:──:──Z
← All Projects
Connecting...
Farm Guardian
CONNECTING…
First frame can take a few seconds β€” the snapshot travels through the Cloudflare tunnel back from the Mac Mini.
house-yard β€” Reolink E1 Pro 4K PTZ
house-yard β€” Reolink E1 Pro 4K PTZCONNECTING
CONNECTING…
First frame can take a few seconds β€” the snapshot travels through the Cloudflare tunnel back from the Mac Mini.
s7-cam β€” Samsung Galaxy S7
s7-cam β€” Samsung Galaxy S7CONNECTING
Cameras: β€”
PTZ Β· house-yard
β€”
Presets
Nudge
activeFull property, Hampton, CTStarted 2026-03-14

Farm Guardian

A multi-camera system running on OpenClaw β€” watching the flock, scoring frames with VLMs, curating the best moments through Discord to Instagram and Facebook.

What This Is

A camera system built with OpenClaw and AI tools, watching the flock across a 13.6-acre hobby farm in Hampton, CT. The Mac Mini M4 Pro sits on the desk indoors; the cameras it runs watch Birdcatraz β€” the outdoor fenced compound where the grown flock lives, coop and turkey pen included. The same machine runs every camera feed, scores frames with vision-language models, archives the best moments, and pushes them to Instagram and Facebook.

One machine. Frame judge, gem curator, bird guardian.

The headline feature isn't predator detection β€” that was built but is paused. The headline is the VLM image pipeline: cameras watching the birds around the clock, a local model judging every frame, Discord as the human review table, and the best moments reaching the public as gems.

The Pipeline

This is the system that runs every day:

  1. Cameras see the birds. Cameras across the property pull frames on a steady cadence β€” no video encoding, no ffmpeg, just clean JPEGs at a few seconds apart.
  2. Mac Mini judges the frames. Bubba (the OpenClaw agent on the Mac Mini) runs vision-language models against every frame β€” scoring for composition, activity, lighting, and share-worthiness. Strong frames get flagged as gems.
  3. Discord becomes the review table. The best gems land in the #farm-2026 channel. Boss reacts to the ones worth sharing β€” the single human-in-the-loop filter. Every reacted gem eventually publishes.
  4. The best moments reach the public. Reacted gems post to @pawel_and_pawleen on Instagram and the Yorkies App Facebook Page. Stories, carousels, and reels β€” all from the same pipeline.

The pipeline has posted hundreds of gems since it went live. The archive is a growth record: the palm-sized fluffballs it started watching in April are the full-grown birds filling the frame from Birdcatraz today.

The Hardware

Cameras across the property β€” named for the hardware, never for where they happen to be pointed. The devices stay; the angles change. The list below is the long-running fleet; the live dashboard above shows whichever ones are reporting frames right now.

CameraHardwareCapabilities
house-yardReolink E1 Outdoor Pro4K PTZ with spotlight + siren. 11-position patrol, sky-watch lock, HTTP snapshot polling via reolink_aio. The only unit with deterrents.
duo2Reolink Duo 2Dual-lens panoramic β€” two sensors stitched into one ultra-wide 8:3 frame. RTSP capture.
s7-camSamsung Galaxy S7 running the IP Webcam appPortrait 1080Γ—1920 β€” optimized for Instagram stories and reels. Fixed tripod, stream endpoint stable; currently aimed at the big water bowl in Birdcatraz.
usb-camUSB webcam on the Mac MiniAVFoundation local capture, 1920Γ—1080, snapshot polling with auto white-balance and autofocus warmup.
mba-camMacBook Air 2013 built-in FaceTime HD webcam720p via ffmpeg + MediaMTX RTSP bridge on the laptop itself.
gwtcGateway laptop built-in webcam720p via ffmpeg + MediaMTX RTSP on Windows; services auto-start via Shawl.

The Reolink is the only one with deterrents β€” spotlight to 100% brightness and a siren loud enough to scatter a hawk mid-dive.

How It Watches

The Mac Mini pulls a JPEG from each camera on a steady cadence β€” no video encoding, no ffmpeg processes, no HLS segments. Still images at a few seconds apart are plenty to see what's happening, and they sail through the Cloudflare tunnel instead of choking it.

It doesn't phone home. No cloud. No subscriptions. No data leaves the network. The dashboard, the camera control, the snapshots β€” everything runs on that one Mac Mini on the desk.

What's running right now:

Paused, on the bench:

Under the Hood

The system is distributed across the property. The Mac Mini (Bubba) is the brain: it polls each camera's frame endpoint, runs the VLM scoring, serves the dashboard API, archives curated gems, and pushes everything out through a Cloudflare tunnel. A second machine β€” Larry, an MSI Dominator near the coop β€” handles gateway camera services and provides compute close to the birds.

The cameras themselves do their own publishing. The Reolink serves HTTP snapshots from its own firmware. The Samsung S7 runs the IP Webcam app. The USB and laptop cameras are published by small Python services on whichever host they're plugged into. Add a camera to Guardian's config on the Mini, restart, and it shows up on this page within thirty seconds β€” no website redeploy.

The Cloudflare tunnel is outbound-only. There's no port forwarding, no opening of router firewalls, no static IP. The Mac Mini reaches out to Cloudflare's edge network, and guardian.markbarney.net reaches back through that tunnel.

Snapshot polling β€” JPEG every second-and-change β€” replaced an earlier video pipeline. Browsers cap concurrent HTTP connections at six per domain, and four MJPEG streams plus the API polling burned through that budget the moment anyone opened the live page. Snapshots are short-lived requests that work cleanly with HTTP/2 multiplexing.

The website is Next.js 16 on Railway, deployed on every push to main. It pulls live data from the Mac Mini's API; static content lives in MDX files in the repo.

When Things Break

The Mac Mini is the single point of failure. If it reboots β€” power blip, OS update, kernel panic β€” the live feeds and the gems pipeline go dark until the processes come back up. The Cloudflare tunnel auto-restarts and so do the per-host camera services, but the central Guardian process itself is currently a manually launched daemon.

Sub-host failures recover or don't, depending on the host. The Gateway laptop has a watchdog service that catches the post-reboot Windows-DirectShow-zombie pattern and restarts the publisher. The S7's IP Webcam app drifts its orientation settings whenever it's killed; another watchdog re-applies them every ten minutes.

When a camera goes down, this page notices. The dashboard above filters to cameras the backend reports as currently producing frames, so a frozen phone or a dead laptop disappears from the grid until it recovers. A camera that the Mac Mini can still see but this page briefly can't reach shows a thin amber "RECONNECTING" strip and holds its last good frame.

Where the Code Lives

Both repos are public on GitHub:

Built with OpenClaw and AI tools β€” Claude, GPT, and others, coordinated through the same platform that runs the farm.

The Story

This started because hawks were taking chickens. In the first week of April 2026, we lost four birds β€” including Birdgit, a Speckled Sussex who followed you around like a dog. A hawk took her on April 8th.

The response was immediate. Within hours, sky-watch mode was built β€” locking the PTZ camera onto a fixed overhead position. Alert images were upgraded from blurry 1080p RTSP frames to sharp 4K snapshots. The camera doesn't just patrol anymore β€” it can hold still and stare at the sky.

Reinforcements arrived the same week: a brooder full of new chicks under heat lamps, next to the Mac Mini that watched over them. Birddor (hatched as Birdadette) β€” the first bird of the 2026 season β€” emerged from his egg on the keyboard, two feet from the machine that would become his guardian. Those chicks are grown now, and the cameras follow them: the whole flock lives outdoors in Birdcatraz, and the system watches the compound instead of the brooder.