# openalice-vision

> Vision perception PRODUCER — turns a camera/screen/scene frame into a consent-gated visual_perception event (agent-protocol v0.2) via an EU-sovereign VLM (mistral-small-3.2 over OpenRouter). The symmetric analog of openalice-stt (audio→text). VlmClient trait + OpenRouterVlm (multimodal) + build_visual_perception (camera-off-until-consent, enforced at the producer) + structured JSON reading + PerceptionCadence (when to read). Live-proven against the real model. The consumer/bridge is in openalice-agent-basic.

## At a glance
| field | value |
|---|---|
| kind | `service` |
| priority | `—` |
| default branch | `mvp` |
| last activity | 2026-06-02T09:08:52+00:00 |
| features catalogued | **3** |
| runtime deps declared | **2** |

## Manifest
`.atlas-deps.yml` — parsed cleanly: **yes**

### Runtime deps
- **`openalice-agent-protocol-rs`** · `other` · via `cargo` — visual_perception ConnectorEvent + PerceptionConsent / VisualSubject types the producer builds.
- `openrouter` (external) · `http` · via `OPENROUTER_API_KEY` — EU VLM (mistral-small-3.2) OpenAI-compatible multimodal endpoint over HTTPS — captions frames. OpenRouter-only per project policy.

### Consumed env
- `OPENROUTER_API_KEY`

### Exposes
- `cargo_crate` — openalice-vision

## Features (3)

### agent-vision/cadence
- **`agent-vision.cadence.perception-gate`** — PerceptionCadence::on_frame(now_ms, change) → bool — the deterministic sampler that gates VLM reads by min/max interval + change threshold.  
  *src/cadence.rs:13*

### agent-vision/crate
- **`agent-vision.crate`** — EU VLM (Pixtral/OpenRouter) frame→visual_perception producer; trait-based VlmClient for test stubs; consent-gated event builder.  
  *src/lib.rs:21*

### agent-vision/event
- **`agent-vision.event.consent-gated-builder`** — build_visual_perception — VlmReading → visual_perception ConnectorEvent, refusing camera origin without granted PerceptionConsent.  
  *src/event.rs:7*

---

*Generated by [openalice-atlas](https://atlas.blal.pro) — single source of truth for the openalicelabs ecosystem.*
