- Add Python WebSocket sensing server (ws_server.py) with ESP32 UDP CSI and Windows RSSI auto-detect collectors on port 8765 - Add Three.js Gaussian splat renderer with custom GLSL shaders for real-time WiFi signal field visualization (blue→green→red gradient) - Add SensingTab component with RSSI sparkline, feature meters, and motion classification badge - Add sensing.service.js WebSocket client with reconnect and simulation fallback - Implement sensing-only mode: suppress all DensePose API calls when FastAPI backend (port 8000) is not running, clean console output - ADR-019: Document sensing-only UI architecture and data flow - ADR-020: Migrate AI/model inference to Rust with RuVector ONNX Runtime, replacing ~2.7GB Python stack with ~50MB static binary - Add ruvnet/ruvector as upstream remote for RuVector crate ecosystem Co-Authored-By: claude-flow <ruv@ruv.net>
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
"""
|
|
Commodity WiFi Sensing Module (ADR-013)
|
|
=======================================
|
|
|
|
RSSI-based presence and motion detection using standard Linux WiFi metrics.
|
|
This module provides real signal processing from commodity WiFi hardware,
|
|
extracting presence and motion features from RSSI time series.
|
|
|
|
Components:
|
|
- rssi_collector: Data collection from Linux WiFi interfaces
|
|
- feature_extractor: Time-domain and frequency-domain feature extraction
|
|
- classifier: Presence and motion classification from features
|
|
- backend: Common sensing backend interface
|
|
|
|
Capabilities:
|
|
- PRESENCE: Detect whether a person is present in the sensing area
|
|
- MOTION: Classify motion level (absent / still / active)
|
|
|
|
Note: This module uses RSSI only. For higher-fidelity sensing (respiration,
|
|
pose estimation), CSI-capable hardware and the full DensePose pipeline
|
|
are required.
|
|
"""
|
|
|
|
from v1.src.sensing.rssi_collector import (
|
|
LinuxWifiCollector,
|
|
SimulatedCollector,
|
|
WindowsWifiCollector,
|
|
WifiSample,
|
|
)
|
|
from v1.src.sensing.feature_extractor import (
|
|
RssiFeatureExtractor,
|
|
RssiFeatures,
|
|
)
|
|
from v1.src.sensing.classifier import (
|
|
PresenceClassifier,
|
|
SensingResult,
|
|
MotionLevel,
|
|
)
|
|
from v1.src.sensing.backend import (
|
|
SensingBackend,
|
|
CommodityBackend,
|
|
Capability,
|
|
)
|
|
|
|
__all__ = [
|
|
"LinuxWifiCollector",
|
|
"SimulatedCollector",
|
|
"WindowsWifiCollector",
|
|
"WifiSample",
|
|
"RssiFeatureExtractor",
|
|
"RssiFeatures",
|
|
"PresenceClassifier",
|
|
"SensingResult",
|
|
"MotionLevel",
|
|
"SensingBackend",
|
|
"CommodityBackend",
|
|
"Capability",
|
|
]
|