> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/hacking-tools/enumeration/ruview-wifi-sensing.md).

# RuView WiFi Sensing

[RuView](https://github.com/ruvnet/RuView) es una plataforma experimental de detección WiFi. En lugar de usar una cámara, estudia cómo cambian las señales WiFi cuando alguien se mueve, se sienta, respira o camina por una habitación.

<figure><img src="https://raw.githubusercontent.com/ruvnet/RuView/main/assets/v2-screen.png" alt="RuView WiFi DensePose observatory showing a room sensing demo with vital signs and presence panels"><figcaption><p>Demostración de RuView Observatory del repositorio oficial.</p></figcaption></figure>

{% hint style="info" %}
Usa RuView solo en laboratorios o espacios autorizados donde las personas sepan que están siendo monitoreadas. Trata las salidas de presencia, postura, caída y signos vitales como señales de investigación, a menos que las valides de forma independiente.
{% endhint %}

## Demos y videos visuales

Usa estos elementos visuales para entender el proyecto antes de probar el hardware. Empieza con la demo y luego compara lo que muestra la interfaz con tus propios experimentos controlados.

<figure><img src="https://raw.githubusercontent.com/ruvnet/RuView/main/assets/ruview-seed.png" alt="RuView overview graphic from the official repository"><figcaption><p>Resumen visual oficial de RuView.</p></figcaption></figure>

### Observatorio en línea

La demo oficial en el navegador alterna entre escenarios como habitación vacía, signos vitales, seguimiento de varias personas, detección de caídas, monitoreo del sueño, detección de intrusiones y búsqueda y rescate.

{% embed url="<https://ruvnet.github.io/RuView/>" %}

### Demo de fusión de postura

Esta demo es útil para entender la diferencia entre los datos visuales de postura y la interpretación de CSI de WiFi. Úsala como una vista conceptual, no como prueba de que todas las habitaciones funcionarán igual.

{% embed url="<https://ruvnet.github.io/RuView/pose-fusion.html>" %}

### Demo de nube de puntos

La demo de nube de puntos ayuda a explicar la idea de convertir entradas de detección en una vista espacial.

{% embed url="<https://ruvnet.github.io/RuView/pointcloud/>" %}

### Video de fondo

Este video no es específico de RuView, pero ofrece una explicación sencilla y general de la idea académica detrás de DensePose a partir de WiFi.

{% embed url="<https://www.youtube.com/watch?v=OhrQ0T6Yl9k>" %}

| Visual                              | Qué observar                                                                       |
| ----------------------------------- | ---------------------------------------------------------------------------------- |
| Demo del Observatorio               | Presencia, movimiento, confianza, signos vitales simulados, cambio de escenario.   |
| Fusión de postura                   | Cómo se visualiza la salida similar a una postura y por qué importa la validación. |
| Nube de puntos                      | Cómo la detección puede convertirse en una representación espacial.                |
| Video de DensePose a partir de WiFi | Contexto de investigación detrás de la estimación corporal basada en WiFi.         |

## Qué hace

RuView intenta convertir los cambios en la señal WiFi en información útil a nivel de habitación:

| Caso de uso                  | Significado sencillo                                                                              |
| ---------------------------- | ------------------------------------------------------------------------------------------------- |
| Detección de presencia       | ¿Hay alguien en la habitación?                                                                    |
| Detección de movimiento      | ¿Alguien está caminando, sentado o moviéndose?                                                    |
| Signos vitales               | Estimar tendencias de respiración o frecuencia cardíaca a partir de pequeños cambios en la señal. |
| Reconocimiento de actividad  | Detectar patrones repetidos como gestos, sueño, actividad en la habitación o posibles caídas.     |
| Eventos de hogar inteligente | Exponer estados de presencia o actividad a sistemas como Home Assistant.                          |
| Demos de investigación       | Visualizar postura basada en WiFi, nubes de puntos y escenarios de detección.                     |

## Cómo funciona

El WiFi ya rebota por las habitaciones. Una persona cambia ligeramente esas trayectorias de radio. RuView lee esos cambios como **Información del estado del canal** (CSI), limpia la señal y la envía a modelos o reglas simples que estiman lo que puede estar ocurriendo.

Flujo sencillo:

```
Señal WiFi
  -> hardware ESP32 o capaz de CSI
  -> flujo CSI
  -> procesamiento de RuView
  -> presencia, movimiento, signos vitales o visualización de demo
```

Una forma fácil de pensarlo: una cámara ve píxeles; RuView ve pequeños cambios en los reflejos de radio. Eso lo hace útil para la investigación, pero también sensible a la distribución de la habitación, los muebles, las paredes, la cantidad de personas, la posición de la antena y la calibración.

## Qué necesitas

| Objetivo                         | Configuración recomendada                                       |
| -------------------------------- | --------------------------------------------------------------- |
| Probar rápidamente la interfaz   | Demo de Docker con datos simulados.                             |
| Aprender el paquete de Python    | `pip install ruview` o `pip install wifi-densepose`.            |
| Probar la captura real de CSI    | Placa ESP32-S3 o ESP32-C6 con firmware de RuView.               |
| Mejor cobertura de la habitación | Varias nodos ESP32 o una pequeña malla.                         |
| Experimentos con modelos         | Paquete de modelo de Hugging Face y conjuntos de datos locales. |

## Demo rápida de Docker

Esta es la primera prueba más sencilla porque no necesita hardware.

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

Abre:

```
http://localhost:3000
```

Usa este modo para aprender sobre el panel, los escenarios y las salidas esperadas antes de comprar o flashear hardware.

## Paquete de Python

Instala el paquete de Python:

```bash
pip install ruview
```

Nombre alternativo del paquete:

```bash
pip install wifi-densepose
```

Instala soporte opcional de cliente para flujos de trabajo con WebSocket y MQTT:

```bash
pip install "ruview[client]"
```

Verificación básica de importación:

```python
from ruview import BreathingExtractor, HeartRateExtractor
```

## Modelo preentrenado

RuView publica pesos preentrenados de sensado WiFi en Hugging Face. Descárgalos localmente:

```bash
pip install huggingface_hub
huggingface-cli download ruvnet/wifi-densepose-pretrained --local-dir models/wifi-densepose-pretrained
```

Usa estos archivos para aprender, inspeccionar y hacer experimentos. Para implementaciones en vivo, revisa las notas actuales del repositorio porque los formatos de modelo y el soporte del servidor pueden cambiar.

## Configuración de hardware ESP32

Para la detección real de CSI, usa hardware ESP32 que pueda exponer información del canal WiFi. El README destaca ESP32-S3 y ESP32-C6 como opciones prácticas.

Proceso típico de alto nivel:

1. Compila o descarga el firmware del nodo CSI de ESP32.
2. Flashea el firmware en la placa.
3. Configura las credenciales WiFi y la IP del servidor de destino.
4. Inicia el servidor o puente de detección de RuView.
5. Abre el panel y ejecuta un pequeño experimento en una habitación.

Ejemplo de secuencia de flasheo del README del proyecto:

```bash
python -m esptool --chip esp32s3 --port COM9 --baud 460800 \
  write_flash 0x0 bootloader.bin 0x8000 partition-table.bin \
  0xf000 ota_data_initial.bin 0x20000 esp32-csi-node.bin
```

Configurar WiFi:

```bash
python firmware/esp32-csi-node/provision.py --port COM9 \
  --ssid "YourWiFi" --password "secret" --target-ip 192.168.1.20
```

## Primeros experimentos

Empieza con experimentos sencillos antes de probar postura o signos vitales:

| Experimento                   | Qué registrar                                       |
| ----------------------------- | --------------------------------------------------- |
| Habitación vacía              | Señal de referencia cuando no hay nadie.            |
| Entra una persona             | Cambio de presencia y confianza.                    |
| Camina por la habitación      | Señal de movimiento y temporización.                |
| Sentarse quieto               | Falsos positivos y estabilidad.                     |
| Se abre la puerta sin persona | Comprobación de ruido ambiental.                    |
| Entran dos personas           | Si el conteo y el movimiento se vuelven inestables. |

Unas buenas notas hacen que el resultado sea más útil:

* Distribución de la habitación.
* Posiciones de los sensores.
* Canal WiFi.
* Número de personas.
* Paredes o muebles entre nodos.
* Pruebas positivas y negativas repetidas.

## Comandos útiles

Ejecuta la demo simulada:

```bash
docker run -p 3000:3000 ruvnet/wifi-densepose:latest
```

Descarga los archivos del modelo:

```bash
huggingface-cli download ruvnet/wifi-densepose-pretrained --local-dir models/wifi-densepose-pretrained
```

Compila el firmware ESP32-C6 desde la carpeta de firmware del proyecto:

```bash
cd firmware/esp32-csi-node
idf.py set-target esp32c6
idf.py build
idf.py -p COM6 flash
```

Ejecuta un escaneo RF en vivo de la habitación desde los scripts del repositorio:

```bash
node scripts/rf-scan.js --port 5006
```

## Cuándo usarlo

RuView encaja bien en:

* Investigación inalámbrica e IoT.
* Revisiones de privacidad para detección sin cámara.
* Experimentos de presencia en hogares inteligentes.
* Entender cómo el WiFi puede convertirse en un sensor.
* Demostraciones de laboratorio de CSI, movimiento y huellas de RF.

No reemplaza:

* Un dispositivo médico certificado.
* Una alarma de seguridad fiable por sí sola.
* Un sistema de identidad o postura al nivel de una cámara.
* Una validación adecuada de seguridad física.

## Lista de verificación de validación

Antes de confiar en cualquier salida:

1. Confirma que la demo o el servidor se ejecutan.
2. Confirma que el hardware produce CSI, no solo RSSI.
3. Registra una línea base de una habitación vacía.
4. Repite cada prueba varias veces.
5. Ejecuta pruebas negativas que no deberían activar la detección.
6. Compara los signos vitales o eventos de seguridad con una referencia independiente.
7. Documenta los fallos, no solo las capturas de pantalla exitosas.

## Referencias

* [Repositorio oficial de RuView](https://github.com/ruvnet/RuView)
* [Guía de usuario de RuView](https://github.com/ruvnet/RuView/blob/main/docs/user-guide.md)
* [Demo del Observatorio en línea de RuView](https://ruvnet.github.io/RuView/)
* [Modelo preentrenado de RuView en Hugging Face](https://huggingface.co/ruvnet/wifi-densepose-pretrained)
* [Guía de captura de movimiento de RuView](https://ruview.blog/ruview-motion-capture/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/es/hacking-tools/enumeration/ruview-wifi-sensing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
