mirror of
https://github.com/ruvnet/RuView
synced 2026-08-07 20:01:43 +00:00
a1a59baf72
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
45 lines
1.6 KiB
TOML
45 lines
1.6 KiB
TOML
[package]
|
|
name = "ruview-unified"
|
|
description = "Unified RF spatial world model (ADR-273): canonical RF tensor + hardware adapters, universal RF foundation encoder, RF-aware Gaussian spatial memory, physics-guided synthetic RF worlds, and the edge sensing control plane"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
documentation.workspace = true
|
|
keywords = ["wifi", "csi", "rf-sensing", "gaussian-splatting", "world-model"]
|
|
categories = ["science", "simulation"]
|
|
|
|
# `ruview-unified` is deliberately a *thin-dependency* crate: pure-Rust math,
|
|
# deterministic ChaCha20 randomness (nvsim pattern — same seed ⇒ byte-identical
|
|
# output on every machine), and a single internal dependency on
|
|
# `wifi-densepose-core` so the WiFi adapter consumes the real `CsiFrame`
|
|
# boundary type instead of a parallel invention. No GPU, no ONNX, no tokio.
|
|
[dependencies]
|
|
wifi-densepose-core = { workspace = true }
|
|
ndarray = { workspace = true }
|
|
num-complex = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
|
|
# Deterministic PRNG for domain randomization + weight init (see nvsim §Pass 4
|
|
# for the rationale: default features off drops the getrandom OS-entropy path,
|
|
# keeping the crate WASM-ready and reproducible).
|
|
rand = { version = "0.8", default-features = false }
|
|
rand_chacha = { version = "0.3", default-features = false }
|
|
|
|
[dev-dependencies]
|
|
criterion = { workspace = true }
|
|
proptest = { workspace = true }
|
|
|
|
[[bench]]
|
|
name = "unified_bench"
|
|
harness = false
|
|
|
|
[lints.rust]
|
|
unsafe_code = "forbid"
|
|
missing_docs = "warn"
|
|
|
|
[lints.clippy]
|
|
all = "warn"
|