mirror of
https://github.com/ruvnet/RuView
synced 2026-07-31 18:51:42 +00:00
b9c563505d
MultiNodeMixture fuses several co-located nodes (each with its own room-calibrated SpecialistBank) into one RoomState: - presence: OR across nodes (any node seeing a person wins) - posture/breathing/heartbeat: highest-confidence node (best viewpoint) - restlessness/anomaly: max across nodes - veto: any node's physically-implausible signal vetoes the room's vitals (anti-hallucination, same as single-node runtime) + presence short-circuit - stale: any node's STALE flag propagates Same-room multistatic only; cross-room is federation (ADR-105), not fusion. 6 unit tests (presence OR, best-confidence breathing, single-node veto, staleness). 35 calibration tests pass. Co-Authored-By: claude-flow <ruv@ruv.net>
38 lines
1.5 KiB
Rust
38 lines
1.5 KiB
Rust
//! # wifi-densepose-calibration — ADR-151 per-room calibration & specialist training
|
|
//!
|
|
//! "Teach the room before you teach the model." A local-first pipeline that turns
|
|
//! a few minutes of clean human anchors — layered on the ADR-135 empty-room
|
|
//! baseline — into a versioned bank of small, specialised models for breathing,
|
|
//! heartbeat, restlessness, posture, presence, and anomaly.
|
|
//!
|
|
//! Stages (ADR-151 §1.3):
|
|
//! 1. **baseline** — empty-room environmental fingerprint (ADR-135; consumed here).
|
|
//! 2. **enroll** — guided anchors with an adaptive quality gate ([`anchor`], [`enrollment`]).
|
|
//! 3. **extract** — labelled feature records from anchor captures ([`extract`]).
|
|
//! 4. **train** — a bank of small specialist models ([`specialist`], [`bank`]) and a
|
|
//! confidence-gated mixture runtime ([`runtime`]).
|
|
//!
|
|
//! Invariants: specialisation over scale; local-first; honest `STALE` degradation
|
|
//! when the baseline drifts.
|
|
|
|
#![forbid(unsafe_code)]
|
|
#![warn(missing_docs)]
|
|
|
|
pub mod anchor;
|
|
pub mod enrollment;
|
|
pub mod error;
|
|
pub mod extract;
|
|
pub mod specialist;
|
|
pub mod bank;
|
|
pub mod runtime;
|
|
pub mod multistatic;
|
|
|
|
pub use anchor::{Anchor, AnchorLabel, AnchorQuality, EnrollmentEvent, EnrollmentSession, Posture};
|
|
pub use bank::SpecialistBank;
|
|
pub use enrollment::{AnchorQualityGate, AnchorRecorder};
|
|
pub use error::{CalibrationError, Result};
|
|
pub use extract::AnchorFeature;
|
|
pub use multistatic::MultiNodeMixture;
|
|
pub use runtime::{MixtureOfSpecialists, RoomState};
|
|
pub use specialist::{Specialist, SpecialistKind, SpecialistReading};
|