> 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).

# Detección WiFi RuView

Notas de detección WiFi de RuView para aprender cómo la Información del Estado del Canal puede usarse para explorar presencia, movimiento, signos vitales y actividad de una habitación sin cámaras.

[RuView](https://github.com/ruvnet/RuView) es una plataforma experimental de detección por 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>Demo 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 monitorizadas. Trata la salida de presencia, postura, caída y signos vitales como señales de investigación, a menos que las valides de forma independiente.
{% endhint %}

## Demostraciones visuales y videos

Usa estos recursos visuales para comprender 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 recorre escenarios como habitación vacía, signos vitales, seguimiento de varias personas, detección de caídas, monitorización 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 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 las 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 de alto nivel 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 de observatorio             | Presencia, movimiento, confianza, signos vitales simulados, cambio de escenario.   |
| Fusión de postura                | Cómo se visualiza una salida similar a la postura y por qué importa la validación. |
| Nube de puntos                   | Cómo la detección puede convertirse en una representación espacial.                |
| DensePose a partir de video 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 simple                                                                                |
| ------------------------------- | ------------------------------------------------------------------------------------------------- |
| 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.                          |
| Demostraciones de investigación | Visualizar postura basada en WiFi, nubes de puntos y escenarios de detección.                     |

## Cómo funciona

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

Flujo simple:

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

Una forma sencilla 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, el número de personas, la posición de la antena y la calibración.

## Lo que necesitas

| Objetivo                         | Configuración recomendada                                        |
| -------------------------------- | ---------------------------------------------------------------- |
| Probar rápidamente la interfaz   | Demo de Docker con datos simulados.                              |
| Aprender el paquete Python       | `pip install ruview`  o  `pip install wifi-densepose`.           |
| Probar captura CSI real          | Placa ESP32-S3 o ESP32-C6 con firmware de RuView.                |
| Mejor cobertura de la habitación | Varios nodos ESP32 o una pequeña malla.                          |
| Experimentos con modelos         | Paquete de modelos 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
```

Abrir:

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

Usa este modo para aprender 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 compatibilidad opcional de cliente para flujos de trabajo de 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 detección 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 experimentar. Para implementaciones en vivo, revisa las notas actuales del repositorio porque los formatos de modelo y la compatibilidad del servidor pueden cambiar.

## Configuración de hardware ESP32

Para la detección CSI real, 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 ESP32 CSI.
2. Flashea el firmware en la placa.
3. Configura las credenciales de WiFi y la IP del servidor destino.
4. Inicia el servidor o puente de detección de RuView.
5. Abre el panel y realiza un pequeño experimento en la habitación.

Ejemplo de comando 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 tiempo.                       |
| Permanecer quieto             | Falsos positivos y estabilidad.                     |
| La puerta se abre sin persona | Comprobación del 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 los 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 de 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 WiFi puede convertirse en un sensor.
* Demostraciones de laboratorio de CSI, movimiento y huellas RF.

No reemplaza:

* Un dispositivo médico certificado.
* Una alarma de seguridad fiable por sí sola.
* Un sistema de identidad o postura a nivel de cámara.
* La 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 está produciendo CSI, no solo RSSI.
3. Registra una referencia de habitación vacía.
4. Repite cada prueba varias veces.
5. Realiza 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
