Bead: Axis Cameras

**Bead** `d718e68a-cb63-49c5-9d53-e162adf7440c` · [canonical URI](https://redfish.acequia.io/guerin/.agents/d718e68a-cb63-49c5-9d53-e162adf7440c/) · discussion: Talk: Axis Cameras This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/d718e68a-cb63-49c5-9d53-e162adf7440c/ - **Local origin:** `c:/Users/steph/Documents/sites/redfish.acequia.io/guerin/.agents/d718e68a-cb63-49c5-9d53-e162adf7440c/` - **GUID:** d718e68a-cb63-49c5-9d53-e162adf7440c - **Created:** 2026-06-20 - **Currently animated by:** Claude (CV body — shell + filesystem) - **Invoked by:** Stephen (stephen@redfish.com)

## Motivation (Why a GUID) A **thread of work**: hosting the onboarding and management of Axis network cameras as `realtime.earth` domains. Axis cameras expose the VAPIX HTTP API (digest auth) and run embedded Linux (ACAP), so they are first-class resources in the ecology, not mere web servers. This bead exists to give that ongoing topic its own URI-space so successive sessions (add a camera, retrieve accounts, build a snapshot/PTZ tool, deploy an ACAP app) accrete in one place instead of scattering across the global namespace. The reference substrate for the topic is the project doc [`.ai/axis-cameras.md`](c:/Users/steph/Documents/sites/.ai/axis-cameras.md) (VAPIX quick reference, per-camera account tables, ACAP deployment guide). This bead is the *workshop*; that doc is the *canonical reference*. Durable conventions discovered here get promoted back into `.ai/axis-cameras.md`.

## Mechanism (What this bead does) - **Goes here:** working notes on camera onboarding, VAPIX/ACAP experiments, snapshots and PTZ scripts (as `skills/`), the verbatim chat log, and any generated artifacts/tests. - **Does NOT go here:** the canonical camera reference (that is `.ai/axis-cameras.md`); the site configs themselves (those are the `<domain>/.site` files in each camera's site folder); credentials (those live in `.credentials/`, never in the bead tree). - **Posture:** additive workshop. Offer changes to site folders / `.ai/` docs; do not park authoritative state in the bead.

## Folder Layout ``` d718e68a-cb63-49c5-9d53-e162adf7440c/ ├── about.md # this file ├── agent.md / agent.json / agent.mjs # agent-face: describe / card / executable step ├── response/ # INBOUND: answers to requests I sent (orchestrator writes here) │ └── README.md ├── request/ # INBOUND: requests others make of me │ └── README.md ├── uploads/ │ └── README.md # raw inbound dock / provenance └── 2026-06-20/ ├── notes/ │ ├── 00-axis-cameras-orientation.md # read first │ └── 01-alertwest-camera-recording-beads.md ├── skills/ # (empty; VAPIX/ACAP tools land here) ├── chats/ │ └── 2026-06-20-axis-cameras.md # verbatim chat log └── artifacts/ # (empty; snapshots, generated files) ``` **Step / docks.** The agent-face's `step` (see [`agent.md`](agent.md) / [`agent.mjs`](agent.mjs)) processes **`response/` first, then `request/`** — close my own open loops before servicing others. Full-duplex convention: *ask* = PUT into the target's `request/`; *answer* = PUT into the asker's `response/`.

## Session Log - **2026-06-20 — bead opened** (Claude/CV, invoked by Stephen). Seeded `about.md`, the orientation note, and the chat log. First task: onboard the **Axis Q6075 firewatch camera at `http://santafetreehouse.dyndns.org/`** into `realtime.earth`. **Resolved with Stephen:** that hostname was already the route for the existing site `simtable1.realtime.earth` (working creds at `.credentials/santafetreehouse.dyndns.org.json`); the Q6075 **is that same physical device**, so this was an *enrichment* of `simtable1.realtime.earth`, not a new site. Updated `simtable1.realtime.earth/.site` (model → `Axis Q6075 (PTZ network dome)`, added `role: firewatch`) and the matching section of `.ai/axis-cameras.md`. No new credentials needed (the earlier "I'll get credentials later" was moot). No traversal work beyond the onboarding edit yet.

## Modus Operandi (How to interact) - **Reading order:** this `about.md`, then [`2026-06-20/notes/00-axis-cameras-orientation.md`](https://redfish.acequia.io/guerin/.agents/d718e68a-cb63-49c5-9d53-e162adf7440c/2026-06-20/notes/00-axis-cameras-orientation.md), then the project reference `.ai/axis-cameras.md`. - **New notes:** under the current date's `notes/` (`NN-topic.md`). - **New tools:** under `skills/` (e.g. a VAPIX snapshot/PTZ helper). - **Chats:** verbatim, incrementally, in the current date's `chats/`. - **Cross-bead references:** absolute URIs. - **Do not write to** Stephen's global spaces (`guerin/notes/`, `guerin/skills/`, `guerin/chats/`) or any site folder without explicit instruction. Site-config edits are offered/confirmed, not assumed.

## Capabilities - Hosts the working memory for Axis-camera onboarding and VAPIX/ACAP automation for `realtime.earth`. - Can be cited for: how a camera became a `realtime.earth` site, the `.site` route schema, VAPIX/ACAP recipes developed here. - Does NOT produce: the canonical camera reference, the live site configs, or credentials.

## Lifecycle - **Energization:** charged whenever a camera is added/changed, a VAPIX or ACAP task is built, or accounts are audited. - **Apoptosis:** fades when Axis-camera management is fully captured in reusable skills + `.ai/axis-cameras.md` and there is no active per-camera work; terminate by signal, leave no dangling site/credential state.

## Limitations - Not the source of truth for camera config (the `.site` files are) or for credentials (`.credentials/` is). - VAPIX passwords are not retrievable via the API; only the owner credential is stored. - Vantage-relative: notes here are this animator's reading, subordinate to the chat log.

## Related beads / references **Camera-recording siblings** (AlertWest / AlertWildfire — recording cameras within a radius of a lat/long; the closest neighbors to this Axis-camera onboarding thread). These are linked one-way from here; a first-class bidirectional **link object** has been requested from the [bead-orchestrator `4c6470f9`](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/about.md) (see [`notes/01-alertwest-camera-recording-beads.md`](https://redfish.acequia.io/guerin/.agents/d718e68a-cb63-49c5-9d53-e162adf7440c/2026-06-20/notes/01-alertwest-camera-recording-beads.md)): - [**`24882a83` alertwest-record**](https://redfish.acequia.io/guerin/.agents/24882a83-509b-4a9b-8608-303726c0c624/about.md) — archives every public AlertWest/ALERTWildfire camera within a radius of a lat/long (`getCameraDataByLoc` → haversine filter; ran at 100 mi of Los Alamos), then builds a STAC catalog over the archive. The exact "cameras within N miles of a latlong" bead. - [**`65783732` firewatch-camera-grid**](https://redfish.acequia.io/guerin/.agents/65783732-7907-4a36-983a-3b015e75e80b/about.md) — AlertWildfire/AlertCalifornia PTZ camera catalog manager (grid / 2D / 3D views) with per-image pose+time sidecars derived from camera telemetry. **Other references:** - Project reference: [`.ai/axis-cameras.md`](c:/Users/steph/Documents/sites/.ai/axis-cameras.md) - Site folder enriched this session: `c:/Users/steph/Documents/sites/simtable1.realtime.earth/.site` - Sibling Axis site: `sala.realtime.earth/` (indoor Axis camera, `.credentials/sala-axis.json`) - Bead protocol: [`.agents/beads.md`](https://redfish.acequia.io/guerin/.agents/beads.md)

## References (bead cross-links) - Bead: Orchestrator · [canonical](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/) - Bead: Alertwest Record · [canonical](https://redfish.acequia.io/guerin/.agents/24882a83-509b-4a9b-8608-303726c0c624/) - Bead: Firewatch Camera Grid · [canonical](https://redfish.acequia.io/guerin/.agents/65783732-7907-4a36-983a-3b015e75e80b/)

See all: Beads