Files
ruvnet--RuView/v2/crates/ruview-unified/src/gaussian/mod.rs
T
rUv 2e018f4f19 feat(ruview-unified): Unified RF spatial world model — ADR-273..282 (#1437)
Native frame contract, universal RF encoder, RF-aware Gaussian spatial memory, physics-guided synthetic RF worlds, edge sensing control plane, BLE-CS + factorized pose. All 10 ADRs (273-282) fully implemented and tested (99 tests); ADR-278 (radar inverse rendering) honestly gated with zero code as a future research program.

Deep-reviewed and hardware-tested against a live ESP32-C6 CSI node before merge: fixed a reachable panic, a silent NaN-corruption path, a cross-entity Gaussian conflation bug, and a wrong-center-frequency bug in the WiFi adapter (confirmed live: was misreporting channel 4 as 2437 MHz, now correctly reports 2427 MHz matching the hardware parser exactly). Added a standing hardware-in-the-loop test (examples/esp32_live_hardware_test.rs). Also fixed unrelated pre-existing issues surfaced during validation (wifi-densepose-core clippy warnings, a ruview-auth Windows build break, a sensing-server test flake).

Full review: https://gist.github.com/ruvnet/89795f3c4b8ea166cff5ac35ae4c7651
2026-07-26 14:37:56 -07:00

31 lines
1.4 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! RF-aware Gaussian spatial memory (ADR-275).
//!
//! The persistent scene representation: anisotropic 3-D Gaussians that carry
//! *both* geometric/semantic state (position, scale, orientation, occupancy,
//! semantic embedding) *and* RF state (per-band × incident-angle
//! reflectivity, Doppler/motion, extinction), plus the bookkeeping a world
//! model needs (confidence, provenance, timestamp, decay, entity links).
//!
//! Three capabilities distinguish this from a point cloud:
//!
//! 1. **Fusion**: observations of the same region merge by
//! confidence-weighted precision updates instead of accumulating
//! duplicates ([`map::GaussianMap::insert`]).
//! 2. **RF queries**: the map predicts complex channel gain between any two
//! points via BeerLambert transmittance through the Gaussians
//! ([`gain::channel_gain`]) — an empty map degrades to *exact* free-space
//! Friis, and measured-vs-predicted residuals update the map inversely
//! ([`gain::observe_link`]).
//! 3. **Task-gated activation**: reasoning code touches a bounded subgraph
//! ([`graph::SceneGraph::activate`]), never the full memory.
pub mod gain;
pub mod graph;
pub mod map;
pub mod primitive;
pub use gain::{channel_gain, gain_db, observe_link};
pub use graph::{EntityKind, RelationKind, SceneEdge, SceneGraph, SceneNode};
pub use map::GaussianMap;
pub use primitive::{Band, EntityLink, MotionState, Provenance, RfGaussian};