mirror of
https://github.com/ruvnet/RuView
synced 2026-08-10 20:31:42 +00:00
2e018f4f19
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
31 lines
1.4 KiB
Rust
31 lines
1.4 KiB
Rust
//! 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 Beer–Lambert 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};
|