Mountain Time

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.

"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:

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

  1. 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.
  2. Implement Opacity Stacking — composite the last N sentinel frames at diminishing opacity. Store the daily composite. Enable differential comparison (today vs yesterday).
  3. Add Escalation Triggers — sentinel pixel anomaly → alert, alert confirmed → active. Wire these through the Action Router as temporal events.
  4. Matter Sensor Integration — bind motion sensors and door sensors as the cheapest tier of the escalation funnel. Physical triggers activate vision tiers.
  5. Rest Mode — explicit dormant state that fully pauses the camera loop. Schedule-triggered or manual. The system sleeps, conserves everything, starts fresh.
  6. Temporal Anomaly Endpoint — GET /api/v1/eyes/mountain returning the slow eye's latest composite, differential, and any flagged anomalies.

Connections

If you came here from YouTube — this is the post that brought you. The full exploration is on this page.
YouTube post thumbnail
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.