Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c707b63

Browse files
committed
docs: add RuvSense persistent field model, exotic tiers, and appliance categories
Expands the RuvSense architecture from pose estimation to spatial intelligence platform with persistent electromagnetic world model. Research (Part II added): - 7 exotic capability tiers: field normal modes, RF tomography, intention lead signals, longitudinal biomechanics drift, cross-room continuity, invisible interaction layer, adversarial detection - Signals-not-diagnoses framework with 3 monitoring levels - 5 appliance product categories: Invisible Guardian, Spatial Digital Twin, Collective Behavior Engine, RF Interaction Surface, Pre-Incident Drift Monitor - Regulatory classification (consumer wellness → clinical decision support) - Extended acceptance tests: 7-day autonomous, 30-day appliance validation ADR-030 (new): - Persistent field model architecture with room eigenstructure - Longitudinal drift detection via Welford statistics + HNSW memory - All 5 ruvector crates mapped across 7 exotic tiers - GOAP implementation priority: field modes → drift → tomography → intent - Invisible Guardian recommended as first hardware SKU vertical DDD model (extended): - 3 new bounded contexts: Field Model, Longitudinal Monitoring, Spatial Identity - Full aggregate roots, value objects, domain events for each context - Extended context map showing all 6 bounded contexts - Repository interfaces for field baselines, personal baselines, transitions - Invariants enforcing signals-not-diagnoses boundary https://claude.ai/code/session_01QTX772SDsGVSPnaphoNgNY
1 parent 25b005a commit c707b63

3 files changed

Lines changed: 1416 additions & 0 deletions

File tree

Lines changed: 364 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,364 @@
1+
# ADR-030: RuvSense Persistent Field Model — Longitudinal Drift Detection and Exotic Sensing Tiers
2+
3+
| Field | Value |
4+
|-------|-------|
5+
| **Status** | Proposed |
6+
| **Date** | 2026-03-02 |
7+
| **Deciders** | ruv |
8+
| **Codename** | **RuvSense Field** — Persistent Electromagnetic World Model |
9+
| **Relates to** | ADR-029 (RuvSense Multistatic), ADR-005 (SONA Self-Learning), ADR-024 (AETHER Embeddings), ADR-016 (RuVector Integration), ADR-026 (Survivor Track Lifecycle), ADR-027 (MERIDIAN Generalization) |
10+
11+
---
12+
13+
## 1. Context
14+
15+
### 1.1 Beyond Pose Estimation
16+
17+
ADR-029 establishes RuvSense as a sensing-first multistatic mesh achieving 20 Hz DensePose with <30mm jitter. That treats WiFi as a **momentary pose estimator**. The next leap: treat the electromagnetic field as a **persistent world model** that remembers, predicts, and explains.
18+
19+
The most exotic capabilities come from this shift in abstraction level:
20+
- The room is the model, not the person
21+
- People are structured perturbations to a baseline
22+
- Changes are deltas from a known state, not raw measurements
23+
- Time is a first-class dimension — the system remembers days, not frames
24+
25+
### 1.2 The Seven Capability Tiers
26+
27+
| Tier | Capability | Foundation |
28+
|------|-----------|-----------|
29+
| 1 | **Field Normal Modes** — Room electromagnetic eigenstructure | Baseline calibration + SVD |
30+
| 2 | **Coarse RF Tomography** — 3D occupancy volume from link attenuations | Sparse tomographic inversion |
31+
| 3 | **Intention Lead Signals** — Pre-movement prediction (200-500ms lead) | Temporal embedding trajectory analysis |
32+
| 4 | **Longitudinal Biomechanics Drift** — Personal baseline deviation over days | Welford statistics + HNSW memory |
33+
| 5 | **Cross-Room Continuity** — Identity persistence across spaces without optics | Environment fingerprinting + transition graph |
34+
| 6 | **Invisible Interaction Layer** — Multi-user gesture control through walls/darkness | Per-person CSI perturbation classification |
35+
| 7 | **Adversarial Detection** — Physically impossible signal identification | Multi-link consistency + field model constraints |
36+
37+
### 1.3 Signals, Not Diagnoses
38+
39+
RF sensing detects **biophysical proxies**, not medical conditions:
40+
41+
| Detectable Signal | Not Detectable |
42+
|-------------------|---------------|
43+
| Breathing rate variability | COPD diagnosis |
44+
| Gait asymmetry shift (18% over 14 days) | Parkinson's disease |
45+
| Posture instability increase | Neurological condition |
46+
| Micro-tremor onset | Specific tremor etiology |
47+
| Activity level decline | Depression or pain diagnosis |
48+
49+
The output is: "Your movement symmetry has shifted 18 percent over 14 days." That is actionable without being diagnostic. The evidence chain (stored embeddings, drift statistics, coherence scores) is fully traceable.
50+
51+
### 1.4 Acceptance Tests
52+
53+
**Tier 0 (ADR-029):** Two people, 20 Hz, 10 min stable tracks, zero ID swaps, <30mm torso jitter.
54+
55+
**Tier 1-4 (this ADR):** Seven-day run, no manual tuning. System flags one real environmental change and one real human drift event, produces traceable explanation using stored embeddings plus graph constraints.
56+
57+
**Tier 5-7 (appliance):** Thirty-day local run, no camera. Detects meaningful drift with <5% false alarm rate.
58+
59+
---
60+
61+
## 2. Decision
62+
63+
### 2.1 Implement Field Normal Modes as the Foundation
64+
65+
Add a `field_model` module to `wifi-densepose-signal/src/ruvsense/` that learns the room's electromagnetic baseline during unoccupied periods and decomposes all subsequent observations into environmental drift + body perturbation.
66+
67+
```
68+
wifi-densepose-signal/src/ruvsense/
69+
├── mod.rs // (existing, extend)
70+
├── field_model.rs // NEW: Field normal mode computation + perturbation extraction
71+
├── tomography.rs // NEW: Coarse RF tomography from link attenuations
72+
├── longitudinal.rs // NEW: Personal baseline + drift detection
73+
├── intention.rs // NEW: Pre-movement lead signal detector
74+
├── cross_room.rs // NEW: Cross-room identity continuity
75+
├── gesture.rs // NEW: Gesture classification from CSI perturbations
76+
├── adversarial.rs // NEW: Physically impossible signal detection
77+
└── (existing files...)
78+
```
79+
80+
### 2.2 Core Architecture: The Persistent Field Model
81+
82+
```
83+
Time
84+
85+
86+
┌────────────────────────────────┐
87+
│ Field Normal Modes (Tier 1) │
88+
│ Room baseline + SVD modes │
89+
│ ruvector-solver │
90+
└────────────┬───────────────────┘
91+
│ Body perturbation (environmental drift removed)
92+
93+
┌───────┴───────┐
94+
│ │
95+
▼ ▼
96+
┌──────────┐ ┌──────────────┐
97+
│ Pose │ │ RF Tomography│
98+
│ (ADR-029)│ │ (Tier 2) │
99+
│ 20 Hz │ │ Occupancy vol│
100+
└────┬─────┘ └──────────────┘
101+
102+
103+
┌──────────────────────────────┐
104+
│ AETHER Embedding (ADR-024) │
105+
│ 128-dim contrastive vector │
106+
└────────────┬─────────────────┘
107+
108+
┌───────┼───────┐
109+
│ │ │
110+
▼ ▼ ▼
111+
┌────────┐ ┌─────┐ ┌──────────┐
112+
│Intention│ │Track│ │Cross-Room│
113+
│Lead │ │Re-ID│ │Continuity│
114+
│(Tier 3)│ │ │ │(Tier 5) │
115+
└────────┘ └──┬──┘ └──────────┘
116+
117+
118+
┌──────────────────────────────┐
119+
│ RuVector Longitudinal Memory │
120+
│ HNSW + graph + Welford stats│
121+
│ (Tier 4) │
122+
└──────────────┬───────────────┘
123+
124+
┌───────┴───────┐
125+
│ │
126+
▼ ▼
127+
┌──────────────┐ ┌──────────────┐
128+
│ Drift Reports│ │ Adversarial │
129+
│ (Level 1-3) │ │ Detection │
130+
│ │ │ (Tier 7) │
131+
└──────────────┘ └──────────────┘
132+
```
133+
134+
### 2.3 Field Normal Modes (Tier 1)
135+
136+
**What it is:** The room's electromagnetic eigenstructure — the stable propagation paths, reflection coefficients, and interference patterns when nobody is present.
137+
138+
**How it works:**
139+
1. During quiet periods (empty room, overnight), collect 10 minutes of CSI across all links
140+
2. Compute per-link baseline (mean CSI vector)
141+
3. Compute environmental variation modes via SVD (temperature, humidity, time-of-day effects)
142+
4. Store top-K modes (K=3-5 typically captures >95% of environmental variance)
143+
5. At runtime: subtract baseline, project out environmental modes, keep body perturbation
144+
145+
```rust
146+
pub struct FieldNormalMode {
147+
pub baseline: Vec<Vec<Complex<f32>>>, // [n_links × n_subcarriers]
148+
pub environmental_modes: Vec<Vec<f32>>, // [n_modes × n_subcarriers]
149+
pub mode_energies: Vec<f32>, // eigenvalues
150+
pub calibrated_at: u64,
151+
pub geometry_hash: u64,
152+
}
153+
```
154+
155+
**RuVector integration:**
156+
- `ruvector-solver` → Low-rank SVD for mode extraction
157+
- `ruvector-temporal-tensor` → Compressed baseline history storage
158+
- `ruvector-attn-mincut` → Identify which subcarriers belong to which mode
159+
160+
### 2.4 Longitudinal Drift Detection (Tier 4)
161+
162+
**The defensible pipeline:**
163+
164+
```
165+
RF → AETHER contrastive embedding
166+
→ RuVector longitudinal memory (HNSW + graph)
167+
→ Coherence-gated drift detection (Welford statistics)
168+
→ Risk flag with traceable evidence
169+
```
170+
171+
**Three monitoring levels:**
172+
173+
| Level | Signal Type | Example Output |
174+
|-------|------------|----------------|
175+
| **1: Physiological** | Raw biophysical metrics | "Breathing rate: 18.3 BPM today, 7-day avg: 16.1" |
176+
| **2: Drift** | Personal baseline deviation | "Gait symmetry shifted 18% over 14 days" |
177+
| **3: Risk correlation** | Pattern-matched concern | "Pattern consistent with increased fall risk" |
178+
179+
**Storage model:**
180+
181+
```rust
182+
pub struct PersonalBaseline {
183+
pub person_id: PersonId,
184+
pub gait_symmetry: WelfordStats,
185+
pub stability_index: WelfordStats,
186+
pub breathing_regularity: WelfordStats,
187+
pub micro_tremor: WelfordStats,
188+
pub activity_level: WelfordStats,
189+
pub embedding_centroid: Vec<f32>, // [128]
190+
pub observation_days: u32,
191+
pub updated_at: u64,
192+
}
193+
```
194+
195+
**RuVector integration:**
196+
- `ruvector-temporal-tensor` → Compressed daily summaries (50-75% memory savings)
197+
- HNSW → Embedding similarity search across longitudinal record
198+
- `ruvector-attention` → Per-metric drift significance weighting
199+
- `ruvector-mincut` → Temporal segmentation (detect changepoints in metric series)
200+
201+
### 2.5 Regulatory Classification
202+
203+
| Classification | What You Claim | Regulatory Path |
204+
|---------------|---------------|-----------------|
205+
| **Consumer wellness** (recommended first) | Activity metrics, breathing rate, stability score | Self-certification, FCC Part 15 |
206+
| **Clinical decision support** (future) | Fall risk alert, respiratory pattern concern | FDA Class II 510(k) or De Novo |
207+
| **Regulated medical device** (requires clinical partner) | Diagnostic claims for specific conditions | FDA Class II/III + clinical trials |
208+
209+
**Decision: Start as consumer wellness.** Build 12+ months of real-world longitudinal data. The dataset itself becomes the asset for future regulatory submissions.
210+
211+
---
212+
213+
## 3. Appliance Product Categories
214+
215+
### 3.1 Invisible Guardian
216+
217+
Wall-mounted wellness monitor for elderly care and independent living. No camera, no microphone, no reconstructable data. Stores embeddings and structural deltas only.
218+
219+
| Spec | Value |
220+
|------|-------|
221+
| Nodes | 4 ESP32-S3 pucks per room |
222+
| Processing | Central hub (RPi 5 or x86) |
223+
| Power | PoE or USB-C |
224+
| Output | Risk flags, drift alerts, occupancy timeline |
225+
| BOM | $73-91 (ESP32 mesh) + $35-80 (hub) |
226+
| Validation | 30-day autonomous run, <5% false alarm rate |
227+
228+
### 3.2 Spatial Digital Twin Node
229+
230+
Live electromagnetic room model for smart buildings and workplace analytics.
231+
232+
| Spec | Value |
233+
|------|-------|
234+
| Output | Occupancy heatmap, flow vectors, dwell time, anomaly events |
235+
| Integration | MQTT/REST API for BMS and CAFM |
236+
| Retention | 30-day rolling, GDPR-compliant |
237+
| Vertical | Smart buildings, retail, workspace optimization |
238+
239+
### 3.3 RF Interaction Surface
240+
241+
Multi-user gesture interface. No cameras. Works in darkness, smoke, through clothing.
242+
243+
| Spec | Value |
244+
|------|-------|
245+
| Gestures | Wave, point, beckon, push, circle + custom |
246+
| Users | Up to 4 simultaneous |
247+
| Latency | <100ms gesture recognition |
248+
| Vertical | Smart home, hospitality, accessibility |
249+
250+
### 3.4 Pre-Incident Drift Monitor
251+
252+
Longitudinal biomechanics tracker for rehabilitation and occupational health.
253+
254+
| Spec | Value |
255+
|------|-------|
256+
| Baseline | 7-day calibration per person |
257+
| Alert | Metric drift >2sigma for >3 days |
258+
| Evidence | Stored embedding trajectory + statistical report |
259+
| Vertical | Elderly care, rehab, occupational health |
260+
261+
### 3.5 Vertical Recommendation for First Hardware SKU
262+
263+
**Invisible Guardian** — the elderly care wellness monitor. Rationale:
264+
1. Largest addressable market with immediate revenue (aging population, care facility demand)
265+
2. Lowest regulatory bar (consumer wellness, no diagnostic claims)
266+
3. Privacy advantage over cameras is a selling point, not a limitation
267+
4. 30-day autonomous operation validates all tiers (field model, drift detection, coherence gating)
268+
5. $108-171 BOM allows $299-499 retail with healthy margins
269+
270+
---
271+
272+
## 4. RuVector Integration Map (Extended)
273+
274+
All five crates are exercised across the exotic tiers:
275+
276+
| Tier | Crate | API | Role |
277+
|------|-------|-----|------|
278+
| 1 (Field) | `ruvector-solver` | `NeumannSolver` + SVD | Environmental mode decomposition |
279+
| 1 (Field) | `ruvector-temporal-tensor` | `TemporalTensorCompressor` | Baseline history storage |
280+
| 1 (Field) | `ruvector-attn-mincut` | `attn_mincut` | Mode-subcarrier assignment |
281+
| 2 (Tomo) | `ruvector-solver` | `NeumannSolver` (L1) | Sparse tomographic inversion |
282+
| 3 (Intent) | `ruvector-attention` | `ScaledDotProductAttention` | Temporal trajectory weighting |
283+
| 3 (Intent) | `ruvector-temporal-tensor` | `CompressedCsiBuffer` | 2-second embedding history |
284+
| 4 (Drift) | `ruvector-temporal-tensor` | `TemporalTensorCompressor` | Daily summary compression |
285+
| 4 (Drift) | `ruvector-attention` | `ScaledDotProductAttention` | Metric drift significance |
286+
| 4 (Drift) | `ruvector-mincut` | `DynamicMinCut` | Temporal changepoint detection |
287+
| 5 (Cross-Room) | `ruvector-attention` | HNSW | Room and person fingerprint matching |
288+
| 5 (Cross-Room) | `ruvector-mincut` | `MinCutBuilder` | Transition graph partitioning |
289+
| 6 (Gesture) | `ruvector-attention` | `ScaledDotProductAttention` | Gesture template matching |
290+
| 7 (Adversarial) | `ruvector-solver` | `NeumannSolver` | Physical plausibility verification |
291+
| 7 (Adversarial) | `ruvector-attn-mincut` | `attn_mincut` | Multi-link consistency check |
292+
293+
---
294+
295+
## 5. Implementation Priority
296+
297+
| Priority | Tier | Module | Weeks | Dependency |
298+
|----------|------|--------|-------|------------|
299+
| P0 | 1 | `field_model.rs` | 2 | ADR-029 multistatic mesh operational |
300+
| P0 | 4 | `longitudinal.rs` | 2 | Tier 1 baseline + AETHER embeddings |
301+
| P1 | 2 | `tomography.rs` | 1 | Tier 1 perturbation extraction |
302+
| P1 | 3 | `intention.rs` | 2 | Tier 1 + temporal embedding history |
303+
| P2 | 5 | `cross_room.rs` | 2 | Tier 4 person profiles + multi-room deployment |
304+
| P2 | 6 | `gesture.rs` | 1 | Tier 1 perturbation + per-person separation |
305+
| P3 | 7 | `adversarial.rs` | 1 | Tier 1 field model + multi-link consistency |
306+
307+
**Total exotic tier: ~11 weeks after ADR-029 acceptance test passes.**
308+
309+
---
310+
311+
## 6. Consequences
312+
313+
### 6.1 Positive
314+
315+
- **Room becomes self-sensing**: Field normal modes provide a persistent baseline that explains change as structured deltas
316+
- **7-day autonomous operation**: Coherence gating + SONA adaptation + longitudinal memory eliminate manual tuning
317+
- **Privacy by design**: No images, no audio, no reconstructable data — only embeddings and statistical summaries
318+
- **Traceable evidence**: Every drift alert links to stored embeddings, timestamps, and graph constraints
319+
- **Multiple product categories**: Same software stack, different packaging — Guardian, Twin, Interaction, Drift Monitor
320+
- **Regulatory clarity**: Consumer wellness first, clinical decision support later with accumulated dataset
321+
- **Security primitive**: Coherence gating detects adversarial injection, not just quality issues
322+
323+
### 6.2 Negative
324+
325+
- **7-day calibration** required for personal baselines (system is less useful during initial period)
326+
- **Empty-room calibration** needed for field normal modes (may not always be available)
327+
- **Storage growth**: Longitudinal memory grows ~1 KB/person/day (manageable but non-zero)
328+
- **Statistical power**: Drift detection requires 14+ days of data for meaningful z-scores
329+
- **Multi-room**: Cross-room continuity requires hardware in all rooms (cost scales linearly)
330+
331+
### 6.3 Risks
332+
333+
| Risk | Probability | Impact | Mitigation |
334+
|------|-------------|--------|------------|
335+
| Field modes drift faster than expected | Medium | False perturbation detections | Reduce mode update interval from 24h to 4h |
336+
| Personal baselines too variable | Medium | High false alarm rate for drift | Widen sigma threshold from 2σ to 3σ; require 5+ days |
337+
| Cross-room matching fails for similar body types | Low | Identity confusion | Require temporal proximity (<60s) plus spatial adjacency |
338+
| Gesture recognition insufficient SNR | Medium | <80% accuracy | Restrict to near-field (<2m) initially |
339+
| Adversarial injection via coordinated WiFi injection | Very Low | Spoofed occupancy | Multi-link consistency check makes single-link spoofing detectable |
340+
341+
---
342+
343+
## 7. Related ADRs
344+
345+
| ADR | Relationship |
346+
|-----|-------------|
347+
| ADR-029 | **Prerequisite**: Multistatic mesh is the sensing substrate for all exotic tiers |
348+
| ADR-005 (SONA) | **Extended**: SONA recalibration triggered by coherence gate → now also by drift events |
349+
| ADR-016 (RuVector) | **Extended**: All 5 crates exercised across 7 exotic tiers |
350+
| ADR-024 (AETHER) | **Critical dependency**: Embeddings are the representation for all longitudinal memory |
351+
| ADR-026 (Tracking) | **Extended**: Track lifecycle now spans days (not minutes) for drift detection |
352+
| ADR-027 (MERIDIAN) | **Used**: Room geometry encoding for field normal mode conditioning |
353+
354+
---
355+
356+
## 8. References
357+
358+
1. IEEE 802.11bf-2024. "WLAN Sensing." IEEE Standards Association.
359+
2. FDA. "General Wellness: Policy for Low Risk Devices." Guidance Document, 2019.
360+
3. EU MDR 2017/745. "Medical Device Regulation." Official Journal of the European Union.
361+
4. Welford, B.P. (1962). "Note on a Method for Calculating Corrected Sums of Squares." Technometrics.
362+
5. Chen, L. et al. (2026). "PerceptAlign: Geometry-Aware WiFi Sensing." arXiv:2601.12252.
363+
6. AM-FM (2026). "A Foundation Model for Ambient Intelligence Through WiFi." arXiv:2602.11200.
364+
7. Geng, J. et al. (2023). "DensePose From WiFi." arXiv:2301.00250.

0 commit comments

Comments
 (0)