Mountain Time
One-Line Pitch
Vision isn't one speed. Mountains and men move on different clocks — and the intelligence is in knowing which clock to watch, when, and what the gap between them reveals.
The Spark — 500 Images and a Hot Pi
The GoW Pi has been running vision non-stop. 500 images generated in the last 24 hours. The camera captures a frame every 5 seconds. Gemini analyses the scene every 10–60 seconds. The director generates artwork every 20–90 minutes. The Nanoleaf panels shift colour on card gestures. The Matter bridge controls smart plugs. Everything is alive, everything is polling, everything is warm.
And that's the problem. Not because it's busy — because it's busy at one speed.
The system watches a flat in Johannesburg the same way it would watch a bank vault during a heist. Full attention, full cadence, full cost. When nothing is happening — which is most of the time — it burns API credits and silicon heat confirming that nothing has happened, again, at 30-second resolution.
Meanwhile, the things that actually matter at the "nothing happening" timescale — did the plant die? has the desk arrangement changed since Tuesday? is there a slow water stain growing on the ceiling? — these are invisible to a system that only knows how to look fast.
The camera has one speed. Reality has many.
The Principle — Speed of Mountains vs Speed of Men
There is a natural law buried in this.
A 60fps camera captures human-speed events brilliantly. A person walks in, picks up a cup, sits down. Every gesture is recorded. Every frame tells a story of motion at the timescale humans operate.
But mountains don't move at 60fps. Seasons don't. Furniture doesn't. The slow creep of a water stain, the gradual lean of a stack of books, the imperceptible drift of a chair across a wooden floor over weeks — these are invisible at human-speed observation. Not because the camera can't see them, but because the sampling rate is wrong. You're measuring continental drift with a stopwatch.
The inverse is equally true. If you can only sample once per hour, a burglar walks in and out between frames. Your temporal resolution creates a blind spot that can be timed. At one frame per minute, someone has 59 seconds to act unseen. The blind spot is the sampling rate itself.
Neither speed is better. They are complementary vulnerabilities:
| Speed |
Strength |
Vulnerability |
| Fast (5s–60fps) |
Catches human-speed events |
Storage fills quickly — old footage deleted, temporal memory is short |
| Slow (1/min–1/hr) |
Retains weeks/months of history, reveals geological change |
Blind spots wide enough to walk through |
| Together |
Full temporal spectrum — fast catches the event, slow provides the context |
The intelligence to switch between them |
The security angle is immediate: if you can only keep 60 minutes of 60fps footage before the buffer wraps, an attacker waits 61 minutes. But if your slow-eye has been watching at one frame per hour for six months, the attacker's reconnaissance visits — Tuesday, Tuesday, Tuesday, then the break-in on Wednesday — are all in the same temporal stack.
Fast vision sees the event. Slow vision sees the pattern.
The Image Stack — Old Tricks, New Eyes
Here's where it gets interesting. What do you do with a frame every minute for six months?
Astrophotographers discovered this decades ago: stack noisy frames and the signal emerges while the noise cancels. The Stochastic Gate mechanism — noise frames generated at rapid intervals, temporally integrated to reveal sub-threshold signal — operates on the same principle.
Apply this to a slow-eye camera feed:
1. Opacity Stacking
Take the last 60 frames (one per minute = one hour). Composite them at diminishing opacity. What doesn't move burns in bright. What moved is a ghost. A chair that stayed put for 59 frames and moved on the 60th appears almost solid with a faint ghost trail. A person who walked through appears as a transparent spectre across the composite.
2. Differential Stacking
Subtract today's hourly composite from yesterday's. What's the same cancels to zero. What changed lights up. You instantly see: something moved that shouldn't have, or something that was there is gone.
3. Temporal Heatmaps
Accumulate motion energy across slow frames. Over a week, you see which zones of the scene have activity and which are dead. The front door: hot. The back corner: cold. If the back corner suddenly gets warm, that's an anomaly that no single frame would catch — it's only visible at geological timescale.
4. The Mountain Negative
What DIDN'T move that SHOULD have. If a potted plant sits at a door for 200 hourly frames, it's furniture. If frame 201 shows it's gone — at the slow timescale, that's a signal. Someone moved it. At the fast timescale, you'd have seen who. But at the slow timescale, you notice it at all. This is the mountain's eye. It doesn't see the hand that moved the rock. It notices the rock is gone.
These are all cheap operations. No AI needed. Pure pixel math. The Gemini call budget stays untouched while the slow eye builds its composites. When the slow eye detects an anomaly — then you call Gemini. Then you escalate.
The Sharding Law
This connects directly to a principle that keeps appearing across the Kronos system: sharding up or down gives you different speeds and systems at play.
A fraction is the same truth expressed at different resolutions. 1/2 is a toggle. 0.5 is a measurement. 50% is a threshold. Same information — different computational environment with different native operations.
Vision sharding is the same:
| Shard Level |
Sampling Rate |
What You See |
Native Intelligence |
API Cost |
| Dormant |
0 fps |
Nothing — system is off, resting |
Conservation. Freshness when activated. |
Zero |
| Sentinel |
1/min |
Slow drift. Geological change. Absence. |
Pixel differencing. Opacity stacks. Heatmaps. |
Near-zero |
| Alert |
1/5s |
Human-speed motion. Entrances. Gestures. |
Frame comparison. JPEG size gating. Motion detection. |
Low (gating) |
| Active |
1/5s + AI every 10–30s |
Scene understanding. Identity. Card signals. |
Gemini vision. Identity pass. Card detection. |
Moderate |
| Recording |
Full capture + AI every 15s |
Complete documentation. Studio session. |
Full pipeline. Every pass enabled. |
High |
The system doesn't operate at one level. It moves between levels based on triggers. And the triggers cascade:
DORMANT ──[schedule/manual]──► SENTINEL
SENTINEL ──[pixel anomaly]──► ALERT
ALERT ──[confirmed motion]──► ACTIVE
ACTIVE ──[human detected]──► RECORDING (or stay active)
RECORDING ──[session end]──► ACTIVE ──[scene stable]──► SENTINEL
Each transition up costs more. Each transition down saves more. The intelligence isn't in any single level — it's in the transition logic. When do you escalate? When do you rest?
The Burnout Problem
A system running at ACTIVE all day is like a person who never sleeps. By the time you need it alert — the studio recording, the security incident, the high-value moment — it's already been running hot for 20 hours. The hardware is warm. The API budget is 80% spent. The context window is full of "empty room, unchanged" observations.
Worse: the data from those 20 hours of nothing is noise that dilutes signal in any aggregate analysis. If Freddy has 500 observations and 490 of them are "same empty room," the 10 that matter are buried.
The fix isn't "run slower." It's run at the right speed at the right time.
- When Kris is out for the day: SENTINEL. One frame per minute. Pixel diff only. No Gemini calls. The Pi runs cool. The API budget barely moves.
- At 6pm when Kris comes home: the slow eye catches the front door opening. JPEG size spike on the minute-frame. Escalate to ALERT.
- ALERT confirms motion with frame comparison. Escalate to ACTIVE.
- ACTIVE fires Gemini. "Kris has arrived." Identity pass confirms. The lights warm up via Matter bridge. The system is NOW paying attention — fresh, rested, with the full API budget available for the evening.
- At midnight: scene stable for 30 minutes. De-escalate to SENTINEL. The system rests.
"Running it cool so it's fresh when it's hot."
The Workflow Weave Connection
This is where Mountain Time meets the workflow infrastructure we've been building.
The Action Router on the GoW Pi already handles event → action bindings. Card gestures trigger Matter plugs. Shuttle buttons trigger camera modes. The language is: input:pattern → action:chain.
Mountain Time adds a new axis: temporal events as inputs.
sentinel:pixel_anomaly:front_door → escalate:alert
sentinel:absence:plant_moved → notify:freddy:"the plant by the door is gone"
alert:motion:sustained_30s → escalate:active
active:human:identified:kris → scene:evening_arrival
active:scene_stable:30min → deescalate:sentinel
schedule:weekday:08:00 → deescalate:dormant
schedule:weekday:17:30 → escalate:sentinel
matter:motion_sensor:front:trigger → escalate:alert
The Matter bridge unlocks physical triggers: a motion sensor on a smart plug detects movement → escalates the vision system. A door sensor opens → sentinel jumps to alert. The USB/WiFi/Bluetooth/Matter EDGE face becomes the first layer of the funnel.
The card signal protocol adds intentional human triggers: a red card held up = "I'm recording now, go to RECORDING mode." A blue card = "I'm done, go to SENTINEL." The card is a physical remote control for the temporal shard level.
Every input channel feeds the same escalation funnel. Every edge device is a trigger in the temporal cascade.
The Stochastic Gate Echo
The Stochastic Gate established a principle: noise isn't the enemy of signal. Noise is the illumination source. Temporal stacking of noisy frames reveals sub-threshold signal that no single clean observation could show.
Mountain Time is the Stochastic Gate applied to surveillance.
At SENTINEL level, each single hourly frame is noisy. Low resolution. Compressed. Individually useless. But stack 24 of them (one day) and the noise averages out. The persistent features burn in. The transient features ghost. The signal — what's permanent, what changed, what's absent — self-separates from the temporal noise.
The astrophotographer doesn't take one perfect 10-minute exposure. They take a thousand imperfect 30-second exposures. The imperfections are different each time. The galaxy is the same each time. Stacking kills the imperfections and reveals the galaxy.
SENTINEL level does the same thing to a room. Each hourly frame is noisy with lighting variation, camera noise, shadows from passing clouds. Stack a week of them and the room structure burns in crystal clear while the transient noise dissolves. Then: has anything in that crystal-clear structure changed since last week?
The slow eye isn't worse vision. It's different vision. Astrophotography vision. Mountain vision.
The Sovereign Watch Architecture
This is how Sovereign Watch works at scale.
A neighbourhood watch network doesn't need every camera at 60fps with AI analysis every 10 seconds. That's unaffordable and unnecessary. What it needs:
- SENTINEL on every camera: 1 frame/min, pixel-only analysis, near-zero API cost. One Pi per camera, running cool, storing weeks of slow-eye data. Composites stacking automatically.
- ALERT on anomaly: Pixel spike on any camera escalates THAT camera to frame-by-frame comparison. Still no AI. Just: "something moved that hasn't moved before."
- ACTIVE on confirmation: Confirmed motion sends one frame to Gemini. "Person at gate, dark clothing, appears to be watching the street." One API call. High value.
- Community broadcast: The ACTIVE observation goes to the WhatsApp group. Not "motion detected" — "Person at the gate on Protea Street for 4 minutes, no vehicle, unusual for this time."
- Network awareness: If SENTINEL cameras on three adjacent streets all show the same vehicle in their hourly composites, the slow eye caught a pattern that no single fast camera would see. The vehicle drove past slowly on three streets over three hours. At 60fps on one camera, it's a car driving past. At 1/hour across three cameras, it's reconnaissance.
The coststructure inverts. Instead of N cameras × expensive-AI-per-frame, you have N cameras × cheap-pixel-math plus occasional-AI-on-escalation. The budget goes where the signal is.
The Cadence Laws
Emerging from this work, a set of principles:
1. Every sampling rate has a native intelligence and a native blind spot.
The intelligence of 60fps is motion capture. Its blind spot is long-term drift. The intelligence of 1/hour is pattern accumulation. Its blind spot is fast events. Neither is complete alone.
2. The transition between rates IS the intelligence.
A system that only operates at one rate is dumb regardless of how fast that rate is. The smart system is the one that knows when to escalate and when to rest. The trigger logic is the brain.
3. Running hot all the time guarantees cold performance when it matters.
Resources are finite — API credits, hardware cycles, storage, human attention. A system at maximum cadence has no headroom for the moment that actually matters. Rest is a strategic resource.
4. Slow vision and fast vision cover each other's vulnerabilities.
Fast can't remember. Slow can't react. Together: slow remembers, fast reacts, and the transition between them is the security guarantee.
5. Stacking is free intelligence.
Pixel composites cost nothing. The slow eye accumulates free intelligence — heatmaps, differential images, absence detection — without a single API call. Every frame adds to the stack. The intelligence grows while the system sleeps.
6. Physical triggers are the cheapest escalation.
A Matter motion sensor costs one packet. A Gemini vision call costs money. The smart architecture puts the cheapest sensors at the widest part of the funnel and the expensive intelligence at the narrow end.
What Exists Now
The skeleton of Mountain Time is already live in the Kronos Vision system:
speed
Adaptive Cadence
Analysis loop already adapts: 10s active → 30s cruise → 60s max. Context-aware: recording mode, away mode, studio mode.
frame_inspect
JPEG Size Gating
Camera loop compares frame sizes — 5% change triggers instant analysis. Suppressed during PTZ scout. This IS sentinel-level pixel detection.
psychology
Vibe Scoring
Every analysis gets a 1–5 vibe score. Human presence auto-boosts to 4+. Vibe drives art generation cooldowns and memory recording.
memory
Stochastic Memory
High-vibe moments saved to ring buffer. 20 notable observations retained as the system's "what's normal" baseline.
settings_remote
Context Polling
KronosTV queries GoW every 30s for studio context (away/studio/recording). Cadence adapts automatically.
sensors
Matter Bridge
21 commissioned devices. Smart plugs, LED strips, Nanoleaf panels — all controllable via workflow weave. Physical edge triggers ready.
Built Adaptive cadence Built JPEG gating Built Context modes Planned Sentinel layer Planned Image stacking Planned Escalation funnel
Next Steps
- Build the Sentinel Loop — a second goroutine alongside
analysisLoop that runs at 1/min, stores frames to a ring buffer, runs pixel-diff composites. No AI. Cheap. Always on.
- Implement Opacity Stacking — composite the last N sentinel frames at diminishing opacity. Store the daily composite. Enable differential comparison (today vs yesterday).
- Add Escalation Triggers — sentinel pixel anomaly → alert, alert confirmed → active. Wire these through the Action Router as temporal events.
- Matter Sensor Integration — bind motion sensors and door sensors as the cheapest tier of the escalation funnel. Physical triggers activate vision tiers.
- Rest Mode — explicit dormant state that fully pauses the camera loop. Schedule-triggered or manual. The system sleeps, conserves everything, starts fresh.
- Temporal Anomaly Endpoint —
GET /api/v1/eyes/mountain returning the slow eye's latest composite, differential, and any flagged anomalies.
Connections

Your camera is blind. So is mine.
The problem isn't resolution. It's speed.
We're watching mountains with stopwatches.
I've been running a vision system 24/7, capturing a frame every 5 seconds. Gemini analyses the scene every minute. Sounds impressive, right? Wrong. It's mostly just an expensive way to confirm that nothing happened.
The core insight? Reality has many speeds, but most vision systems only have one.
Think about it: a 60fps camera is perfect for capturing human-speed events. Someone walks in, grabs a coffee, sits down. Every gesture, recorded in detail.
But mountains don't move at 60fps. Neither does furniture. The slow creep of a water stain, the gradual lean of a stack of books – invisible to a system only designed to look fast.
Conversely, if you only sample once an hour, a burglar could waltz in and out between frames. Your sampling rate creates a blind spot.
It's not about one speed being "better". They're complementary vulnerabilities. Fast vision catches the event. Slow vision sees the pattern.
The security implications are obvious. If your buffer only holds 60 minutes of 60fps footage, an attacker just waits 61 minutes. But if a "slow eye" has been watching at one frame per hour for six months, their reconnaissance visits are all in the same temporal stack.
So, what do you *do* with a frame every minute for six months? This is where it gets interesting.
Borrowing from astrophotographers, I've been experimenting with stacking techniques:
Opacity Stacking: Composite the last 60 frames at diminishing opacity. What doesn't move burns in bright. What moved is a ghost.
Differential Stacking: Subtract today's hourly composite from yesterday's. What changed lights up.
Temporal Heatmaps: Accumulate motion energy across slow frames. See which zones have activity and which are dead.
The Mountain Negative: What DIDN'T move that SHOULD have. If a potted plant sits at a door for 200 hourly frames, it's furniture. If frame 201 shows it's gone – that's a signal.
The beauty of this? It's mostly pixel math. No constant AI calls. The Gemini API stays quiet until the slow eye detects an anomaly. *Then* you escalate.
This connects to a recurring principle in my Kronos system: Sharding up or down gives you different speeds and systems at play. Vision sharding lets you adapt the sampling rate to the event, and see the bigger picture.
Full exploration linked — written docs + visuals.