Files
ruvnet--RuView/docs/adr/ADR-278-radar-inverse-rendering-research-program.md
T
Claude a1a59baf72 feat(ruview-unified): unified RF spatial world model P1 (ADR-273..278)
One shared representation instead of another isolated RF classifier: new
v2 leaf crate ruview-unified implementing all five ADR-273 pillars, plus
six ADRs with measured, grade-labeled results.

- Canonical RfTensor + fail-closed hardware adapter registry (802.11 CSI
  via wifi-densepose-core::CsiFrame, FMCW radar cubes, UWB CIR, 5G SRS);
  shared layout/gain/phase normalization proven by tests (ADR-274).
- Universal RF foundation encoder: CFO-aligned, median-scaled tokenizer;
  masked-reconstruction pretraining with hand-derived backprop verified
  against central finite differences (max rel err 1.31e-5 over all 12
  parameter groups); fusion contract z = Enc ⊙ σ(AgeEnc) + GeomEnc;
  task adapters under the 1% budget (129/268/387/2 params vs 40,856
  backbone), enforced by test.
- RF-aware Gaussian spatial memory: anisotropic primitives with per-band
  reflectivity, confidence-weighted fusion, decay, spatial-hash/semantic
  queries, closed-form Beer-Lambert channel gain (exact Friis on empty
  map), inverse gain updates (unseen 6.1 dB wall learned to <0.5 dB in
  20 observations), task-gated scene graph (ADR-275).
- Physics-guided synthetic RF worlds: image-method multipath (order ≤2),
  complex-permittivity Fresnel materials, emergent Doppler proven against
  the analytic phase rate, seeded ChaCha20 randomization of physics and
  hardware nuisances; byte-deterministic per seed (ADR-276).
- Edge sensing control plane: 802.11bf/ETSI-ISAC-aligned purposes/zones,
  fail-closed authorization, double-gated identity, retention bounds;
  BoundedEvent-only trust boundary makes raw RF export unrepresentable
  (ADR-277). Radar inverse rendering stays a gated research program
  (ADR-278, no code by design).

Anti-leakage acceptance pipeline (strict splits by room/day/person/
chipset/firmware/layout with independent disjointness verification):
presence F1 1.00 on held-out rooms and held-out chipset, degradation
0.0, ECE 0.012, p95 latency 2.0 ms debug / 105 µs release — ALL
SYNTHETIC until P2 real-data validation.

Benchmarks + optimization pass: channel_gain 139→27 µs (O(1) in map
size via segment-corridor AABB sweep), observe_link 305→74 µs, DFT
twiddle plan 4.9x; hash/linear crossover (~4k Gaussians) reported
honestly.

Tests: ruview-unified 66 unit + 3 acceptance, 0 failed; workspace
3,771 passed 0 failed (--exclude wifi-densepose-desktop: GTK headers
unavailable in this container). Python proof: VERDICT PASS. Also
gitignore sensing-server test-run artifacts (incl. generated
session-secret).

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01Q1R5zhz6sSfXGRXpgBwpFX
2026-07-26 19:03:39 +00:00

4.3 KiB
Raw Blame History

ADR-278: Radar inverse rendering + differentiable RF SLAM — a gated research program, not a dependency

Field Value
Status Proposed — research program (deliberately no code in P1)
Date 2026-07-26
Parent ADR-273 (pillar 6, score 3.6 — highest strategic value, highest hardware + reproduction risk)
Relates to ADR-275 (the Gaussian memory these methods would write into), ADR-263/264 (RTL8720F radar platform + wire protocol), ADR-021 (mmWave vitals hardware), ADR-276 (synthetic worlds as the reproduction sandbox)

0. PROOF discipline

Everything numeric in this ADR is EXTERNAL-UNVERIFIED — reported by fresh papers/preprints that this repo has not reproduced. That is the point of this ADR: to fix the reproduction gates before any of these numbers are allowed to influence the roadmap as if they were ours.

1. Context — what the field reports (July 2026)

System Claim (theirs) Availability Risk read
RISE Single static mmWave radar + multipath inversion → joint room layout + furniture; 16 cm scene Chamfer (baseline 40 cm), 58 % furniture IoU code available most reproducible; static sensor matches our appliance posture
DiffRadar Radar SLAM + Gaussian fields + differentiable rendering; 0.129 m vs 0.823 m ATE, 94.78 % vs 42.59 % map consistency, 70 fps, 40 MB maps fresh preprint treat as reproduction target, not component — numbers are single-team, single-venue
GeRaF Differentiable RF renderer + SDF + reflectivity, near-range reconstruction; ~32 h on one H100 for 50 k iterations published setup offline calibration / digital-twin tool only; unsuitable for continuous adaptation

The strategic pull is real: all three converge on inverse rendering into continuous scene representations — exactly the ADR-275 memory. The risks are equally real: single-source numbers, mmWave hardware variance, and compute profiles (GeRaF) incompatible with edge deployment.

2. Decision

  1. No production dependency on any of these systems or their claims. ADR-275's gain model + inverse update is the only RF-inverse machinery in the deployment path.
  2. Reproduction order: RISE → DiffRadar → GeRaF-lite, each on one controlled test site, each gated (§3) before the next starts. RISE first because a static radar matches the RuView appliance posture and its inversion writes naturally into RfGaussian (occupancy + reflectivity fields already exist for it).
  3. Sandbox-first: before hardware, each method's core inversion is exercised against ADR-276 synthetic worlds extended with a radar-cube output mode (the FmcwRadarCube adapter already normalizes such cubes), so failures separate into "our reimplementation" vs "their claim" cleanly.
  4. Integration contract: any reproduced system emits into GaussianMap via the existing primitive — no parallel scene store. SLAM trajectories, if any, become Provenance-stamped map updates subject to ADR-277 export rules like everything else.

3. Gates (each phase passes all or the program pauses)

Gate Threshold Split discipline
G1 RISE-repro (synthetic) layout Chamfer within 2× of paper's on our synthetic rooms held-out room geometries
G2 RISE-repro (one real site) qualitative layout recovery + quantified Chamfer vs measured floor plan; report our number, whatever it is site never used in tuning
G3 DiffRadar-repro ATE and map consistency on our trajectory rig; publish the delta vs paper held-out trajectories
G4 Edge viability inversion or map-update loop ≤ 50 ms p95 on target hardware, or explicit reclassification as offline-calibration tooling (GeRaF's honest category)

A gate failure is a result, recorded in this ADR's log — the program exists to convert EXTERNAL-UNVERIFIED into MEASURED, in either direction.

4. Consequences

  • The roadmap cannot silently absorb preprint numbers; anything radar-inverse must pass through §3.
  • ADR-275's primitive already reserves the fields (per-band × angle reflectivity, occupancy, motion) these methods need, so a successful reproduction integrates without schema churn.
  • Cost of delay is accepted: pillar 6 scored lowest on readiness, and P1P4 (encoder, memory, synth, control plane, SRS) do not depend on it.