Understanding the Six Stages of the Signal-Line Protocol (CRV) in RuView

The Signal-Line Protocol (CRV) in RuView implements a structured six-stage pipeline that transforms raw Wi-Fi Channel State Information (CSI) into high-level perceptual constructs, enabling robust multi-person tracking and cross-room identity continuity through coordinated remote viewing techniques mapped to wireless sensing.

The Signal-Line Protocol (CRV) serves as the cognitive backbone of the RuView pipeline, translating abstract wireless signals into actionable environmental intelligence. This repository implements a sophisticated six-stage methodology that maps traditional Coordinate Remote Viewing techniques directly onto Wi-Fi CSI processing, creating a robust framework for cross-room identity continuity and multi-person disambiguation.

What Is the Signal-Line Protocol (CRV)?

The Coordinate Remote Viewing (CRV) protocol, originally developed for structured psychic perception, has been adapted in RuView as a computational framework for wireless sensing. The protocol treats Wi-Fi signals as a "signal line"—a data stream that carries environmental information through channel state variations. RuView implements this as a deterministic six-stage pipeline where each stage performs specific transformations on CSI data, progressively refining raw amplitude and phase measurements into high-level semantic constructs suitable for human identification and activity recognition.

The Six CRV Stages in RuView's Pipeline

RuView's implementation maps each traditional CRV stage to specific Wi-Fi CSI processing modules. The pipeline progresses from coarse pattern detection through final person partitioning, with each stage building upon the embeddings generated by the previous phase.

Stage I: Gestalt (Pattern Classification)

The Gestalt stage performs initial signal characterization through detrended autocorrelation analysis. In rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_i.rs, the pipeline analyzes raw CSI amplitude and phase envelopes to classify the RF environment into periodic, chaotic, or transient categories. This coarse-grained filtering determines whether the signal line contains man-made motion patterns or natural environmental noise, establishing the foundational "character" of the wireless channel for subsequent processing.

Stage II: Sensory (Multi-Modality Encoding)

The Sensory stage transforms CSI sub-carrier features into six distinct sensory channels. As implemented in stage_ii.rs, this module maps wireless signal properties to perceptual analogues: amplitude variance represents texture, phase jitter corresponds to temperature gradients, and spectral flatness indicates luminosity variations. This encoding creates a richer, multi-dimensional description of the signal line that enables finer discrimination between similar motion patterns and environmental conditions.

Stage III: Topology (Spatial Graph Construction)

The Topology stage builds a weighted graph representation of the physical environment using Access Point (AP) mesh relationships. The implementation in stage_iii.rs constructs a spatial graph where nodes represent APs and edge weights encode link-quality metrics derived from CSI coherence. This topological "sketch" provides geometric context for the signal line, enabling the pipeline to distinguish between motion occurring in different physical zones even when raw signal characteristics appear similar.

Stage IV: Coherence (Quality Gating)

The Coherence stage implements a phase-phasor coherence gate that filters contaminated frames. Located in rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs, this module evaluates each CSI frame for multipath interference and hardware drift, tagging frames as Accept, PredictOnly, Reject, or Recalibrate. This gate mirrors the CRV concept of "Analytical Overlay" detection, ensuring that only high-fidelity signal data progresses to the interrogation phase while flagging corrupted measurements for special handling.

Stage V: Interrogation (Targeted Signal Extraction)

The Interrogation stage performs person-specific signal extraction through targeted sub-carrier selection. As defined in stage_v.rs, this module operates as a query-style engine that probes accumulated CSI history with hypothesized pose signatures. The system pulls evidence supporting or rejecting specific person motion profiles, effectively "interrogating" the signal line to extract identity-specific information from the composite wireless channel measurements.

Stage VI: Partition (Multi-Person Clustering)

The Partition stage performs final clustering and identity resolution through MinCut-based graph partitioning. Implemented in stage_vi.rs, this module separates embedded CSI streams into distinct person-specific partitions and calculates cross-room convergence scores. The stage yields a composite 3-D model of all observed subjects, enabling robust multi-person tracking that maintains identity continuity across different physical spaces and varying wireless conditions.

Implementing the CRV Pipeline in Rust

RuView exposes the CRV protocol through the wifi-densepose-ruvector crate, providing a type-safe interface for configuring and executing the six-stage pipeline.

Configuration and Dependencies

Enable CRV support by adding the feature flag to your Cargo.toml:

[dependencies]
wifi-densepose-ruvector = { version = "0.2", features = ["crv"] }

Instantiating the Pipeline

Create a configured pipeline instance using CrvPipeline and CrvConfig from rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/crv/mod.rs:

use wifi_densepose_ruvector::crv::{CrvPipeline, CrvConfig};

fn main() -> Result<()> {
    // Configure thresholds and stage-specific parameters
    let cfg = CrvConfig::default()
        .with_stage_i_threshold(0.7)
        .with_stage_iv_gate(Some(wifi_densepose_signal::ruvsense::CoherenceGate::new()));

    // Initialize the six-stage pipeline
    let mut pipeline = CrvPipeline::new(cfg)?;

    // Process CSI frames with associated AP topology
    let csi_frame = /* acquire CSI from hardware */;
    let ap_topology = /* mesh graph of APs */;
    
    let result = pipeline.process_frame(csi_frame, ap_topology)?;
    
    // Access person partitions after Stage VI processing
    println!("Current person clusters: {:?}", result.partitions);
    Ok(())
}

Command-Line Deployment

For rapid deployment, enable CRV processing via the sensing server CLI:

cargo add wifi-densepose-ruvector --features crv
./target/release/sensing-server --model model.rvf --crv --source esp32

Key Source Files and Architecture

The CRV implementation spans documentation, architectural records, and Rust source modules across the RuView repository.

Path Role in CRV Pipeline
docs/user-guide.md High-level description and quick-start reference for the six CRV stages (lines 30-42)
docs/adr/ADR-033-crv-signal-line-sensing-integration.md Architectural decision record detailing Wi-Fi subsystem mappings for each stage
rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/crv/mod.rs Rust module exposing CrvPipeline and CrvConfig interfaces
rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_i.rs Stage I (Gestalt) implementation: detrended autocorrelation and pattern classification
rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_ii.rs Stage II (Sensory) implementation: six-modality feature encoding
rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_iii.rs Stage III (Topology) implementation: AP mesh graph construction
rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs Stage IV (Coherence) implementation: phase-phasor quality gating
rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_v.rs Stage V (Interrogation) implementation: targeted sub-carrier extraction
rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_vi.rs Stage VI (Partition) implementation: MinCut clustering and cross-room scoring

Summary

The Signal-Line Protocol (CRV) in RuView provides a systematic six-stage framework for transforming raw Wi-Fi CSI into actionable perceptual intelligence:

  • Stage I (Gestalt) establishes coarse environmental character through detrended autocorrelation analysis of signal periodicity.
  • Stage II (Sensory) encodes CSI features into six perceptual modalities, creating rich multi-channel descriptions of wireless phenomena.
  • Stage III (Topology) constructs weighted AP mesh graphs that provide geometric context for signal interpretation.
  • Stage IV (Coherence) filters contaminated frames through phase-phasor gating, ensuring only high-fidelity data progresses.
  • Stage V (Interrogation) performs targeted extraction of person-specific signatures from accumulated CSI history.
  • Stage VI (Partition) resolves multi-person scenarios through MinCut-based clustering with cross-room identity continuity.

This architecture enables RuView to perform robust anomaly classification, multi-person disambiguation, and persistent identity tracking across diverse wireless environments.

Frequently Asked Questions

How does the Signal-Line Protocol (CRV) differ from standard Wi-Fi sensing pipelines?

Standard Wi-Fi sensing typically applies direct machine learning to raw CSI amplitude and phase measurements without structured intermediate representations. The Signal-Line Protocol (CRV) introduces a cognitive pipeline that explicitly models the progression from raw signals to semantic understanding through six distinct perceptual stages. This structured approach, documented in docs/adr/ADR-033-crv-signal-line-sensing-integration.md, enables robust handling of multipath interference, cross-room tracking, and multi-person disambiguation that unstructured pipelines struggle to achieve.

Which Rust modules implement the specific CRV stages in RuView?

The six CRV stages are implemented across specialized Rust modules within the wifi-densepose-ruvector crate. Stages I, II, III, V, and VI reside in rust-port/wifi-densepose-rs/patches/ruvector-crv/src/ as stage_i.rs, stage_ii.rs, stage_iii.rs, stage_v.rs, and stage_vi.rs respectively. Stage IV (Coherence) is implemented in rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs. The public API exposing these stages is centralized in rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/crv/mod.rs.

What configuration parameters control the CRV pipeline thresholds?

The CrvConfig struct in rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/crv/mod.rs exposes stage-specific threshold parameters. Key configuration methods include with_stage_i_threshold() which sets the detrended autocorrelation cutoff (typically 0.7) for pattern classification, and with_stage_iv_gate() which accepts a CoherenceGate instance to configure phase-phasor quality thresholds. These parameters determine how strictly the pipeline filters environmental noise in the Gestalt stage and how aggressively it rejects contaminated frames during the Coherence gating phase.

How does Stage VI (Partition) maintain identity continuity across rooms?

Stage VI (Partition) implements MinCut-based graph partitioning combined with cross-room convergence scoring to maintain persistent identity tracking. As implemented in rust-port/wifi-densepose-rs/patches/ruvector-crv/src/stage_vi.rs, the stage constructs a similarity graph where nodes represent candidate person embeddings from Stage V, and edge weights reflect motion signature correlation. The MinCut algorithm separates these into distinct partitions representing individual persons. Crucially, the module calculates cross-room convergence scores by comparing current partition signatures against historical embeddings stored in the CRV session manager, enabling the system to recognize that a person moving from one room to another maintains the same identity despite changing AP topology and multipath characteristics.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →