Π RuView: Tu Router WiFi Ya Es un Sensor — Sin Cámaras, Sin Hardware Nuevo

59.2K stars y subiendo. Esto es lo que este proyecto trending realmente hace.


Tu router WiFi está constantemente inundando tu espacio con ondas de radio. Cuando alguien cruza una habitación, se sienta, o simplemente respira, esas ondas rebotan de forma diferente. Eso es física — y lleva más de una década siendo estudiada en laboratorios académicos. Lo que π RuView hace es empaquetar esa capacidad en un pipeline open-source que cualquier desarrollador puede correr hoy, con hardware que cuesta menos de 10 dólares.

El repo — de ruvnet — cruzó las 59.2K stars esta semana y está generando una tracción seria en GitHub Trending. Acá te explicamos qué hace realmente, cómo funciona el pipeline, y dónde es genuinamente útil versus donde el proyecto todavía es honesto sobre sus limitaciones.


Qué es el Channel State Information — y por qué importa

El WiFi estándar te da RSSI: un único número que representa la intensidad de la señal. Grueso, ruidoso, no muy útil para sensing.

El Channel State Information (CSI) es diferente. Los routers 802.11 modernos transmiten a través de decenas de frecuencias subportadoras simultáneamente (esa es la parte OFDM de tu especificación WiFi). El CSI captura datos de amplitud y fase en todas esas subportadoras — dándote un snapshot rico y de alta dimensionalidad de cómo luce el entorno de RF en cualquier momento dado.

Cuando un cuerpo humano entra en ese entorno, perturba la señal de formas medibles. Cuando respirás, el desplazamiento del pecho crea un cambio de fase cíclico. Cuando te movés, la varianza de amplitud aumenta en subportadoras específicas. El pipeline de RuView captura esas perturbaciones y las convierte en datos estructurados.


El hardware: un ESP32-S3, no un rack de servidores

La capa de sensing corre en microcontroladores ESP32-S3 — ampliamente disponibles, cuestan unos pocos dólares cada uno. El ESP32-S3 expone datos CSI crudos vía su firmware, que RuView captura y streamea a un pipeline de procesamiento.

Una limitación importante que el proyecto aclara desde el inicio: el ESP32-C3 y el ESP32 original no están soportados. Ambos son de un solo núcleo y no tienen el headroom de procesamiento necesario para DSP de CSI en tiempo real. Necesitás específicamente la variante S3.

Un solo nodo ESP32-S3 te da detección básica de presencia y monitoreo de signos vitales. Para resolución espacial — saber dónde está alguien, no solo que hay alguien — el proyecto recomienda dos o más nodos, o agregar un dispositivo Cognitum Seed para cobertura multi-antena.


Qué detecta el pipeline realmente

Una vez que el CSI está siendo capturado, RuView lo procesa a través de una cadena de etapas:

Detección de presencia — ¿Hay alguien en la habitación? Funciona a través de paredes, en oscuridad total, sin necesidad de línea de visión directa.

Monitoreo de signos vitales — La frecuencia respiratoria se extrae vía análisis de fase en subportadoras estables, usando conteo de picos en la señal cíclica de desplazamiento del pecho. La extracción de frecuencia cardíaca también está implementada.

Detección de movimiento — Varianza de amplitud CSI medida en una ventana deslizante de 20 frames. Dispara captura adaptativa cuando se detecta movimiento.

Tomografía RF — Usando RSSI por nodo, RuView retroproyecta datos de señal sobre una grilla de ocupación 8×8×4 — un mapa 3D grueso de dónde se concentra la perturbación de señal.

Estimación de pose (experimental) — Esta es la capacidad más ambiciosa y la que tiene las advertencias más claras. La precisión de pose sin cámara se encuentra actualmente en aproximadamente PCK@20 ≈ 2.5% con etiquetas proxy. El proyecto es explícito al respecto: el entrenamiento con ground-truth de cámara apunta a 35%+ de PCK@20, pero las fases de recolección de datos y evaluación todavía están pendientes. No se ha publicado ningún resultado medido con supervisión de cámara. Framing honesto, y vale saberlo antes de construir expectativas alrededor de esto.


El stack de inferencia

La capa de ML corre inferencia basada en ONNX on-device. El pipeline de procesamiento de señal está implementado en Rust, con crates individuales para cada etapa:

  • wifi-densepose-signal — Procesamiento de señal CSI (seis algoritmos state-of-the-art)
  • wifi-densepose-nn — Inferencia neural vía ONNX, PyTorch y Candle
  • wifi-densepose-vitals — Extracción de signos vitales
  • wifi-densepose-hardware — Soporte de sensores ESP32 e Intel 5300

El backbone de IA — llamado RuVector — maneja atención, algoritmos de grafos y compresión edge-AI para transformar el CSI ruidoso crudo en input estructurado y limpio para la red neural.

El camino más rápido para tener una instancia corriendo es Docker:

docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest

O compilá desde el código fuente en Rust con ./install.sh --profile rust --yes.


Casos de uso que vale la pena tomar en serio

El proyecto identifica varios verticales donde el sensing WiFi tiene ventajas genuinas sobre cámaras y LIDAR:

Cuidado de adultos mayores y accesibilidad — Detección de caídas y monitoreo de presencia sin instalar cámaras en espacios privados. Una alternativa real que preserva la privacidad.

Seguridad industrial — Aplicación de zonas de exclusión alrededor de maquinaria pesada. Detecta trabajadores en áreas peligrosas incluso a través de equipos y estantes.

Robótica — El campo CSI actúa como una capa de conciencia espacial que funciona donde el LIDAR falla: a través de polvo, humo, niebla, y a la vuelta de esquinas. Los robots colaborativos pueden detectar humanos detrás de obstrucciones y frenarse automáticamente antes del contacto.

Smart home — Detección de presencia sin un servicio de cámaras por suscripción. Tu router ya está ahí.

Para desarrolladores latinoamericanos en particular: el costo de hardware es mínimo (las placas ESP32-S3 están ampliamente disponibles y son baratas), la inferencia corre on-device (sin costos de API en la nube), y la arquitectura privacy-first evita por completo las preocupaciones de soberanía de datos.


Qué esperar de forma realista

RuView es un proyecto de ingeniería serio, pero también está en etapa temprana en varios frentes:

  • La precisión de estimación de pose no está lista para producción. El 2.5% de PCK@20 es honesto y el proyecto lo dice claramente. Es un objetivo de investigación, no una feature que ya funciona.
  • La resolución espacial con un solo nodo es limitada. La detección de presencia funciona bien con un nodo; la localización requiere múltiples.
  • El modelo WiFlow es un placeholder. El renderer de skeleton existe; el wiring a inferencia ONNX real es un follow-up planificado según la documentación.

Nada de esto descalifica el proyecto. Significa que tenés que construir alrededor de las capacidades que están validadas — presencia, frecuencia respiratoria, movimiento — y tratar la estimación de pose como un ítem del roadmap.


Por qué está trending

59.2K stars en un período corto apunta a algo real tocando un nervio. La combinación de cero requisitos de hardware nuevo, ventajas de privacidad genuinas sobre las cámaras, y una implementación en Rust bien documentada es convincente. Las aplicaciones de robótica y seguridad industrial también están atrayendo interés de comunidades muy fuera de la multitud típica de home-automation.

La física subyacente lleva años en la literatura académica. Lo que RuView hace es volverla accesible para cualquiera que tenga un ESP32-S3, un router y una terminal.

GitHub: github.com/ruvnet/RuView