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

> Explore the six stages of the Signal-Line Protocol CRV in RuView. Learn how RuView transforms Wi-Fi CSI for multi-person tracking and cross-room continuity via wireless sensing.

- Repository: [rUv/RuView](https://github.com/ruvnet/RuView)
- Tags: deep-dive
- Published: 2026-03-08

---

**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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/Cargo.toml):

```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`](https://github.com/ruvnet/RuView/blob/main/rust-port/wifi-densepose-rs/crates/wifi-densepose-ruvector/src/crv/mod.rs):

```rust
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:

```bash
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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/stage_i.rs), [`stage_ii.rs`](https://github.com/ruvnet/RuView/blob/main/stage_ii.rs), [`stage_iii.rs`](https://github.com/ruvnet/RuView/blob/main/stage_iii.rs), [`stage_v.rs`](https://github.com/ruvnet/RuView/blob/main/stage_v.rs), and [`stage_vi.rs`](https://github.com/ruvnet/RuView/blob/main/stage_vi.rs) respectively. **Stage IV (Coherence)** is implemented in [`rust-port/wifi-densepose-rs/crates/wifi-densepose-signal/src/ruvsense/coherence_gate.rs`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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`](https://github.com/ruvnet/RuView/blob/main/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.