> 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/fr/hacking-tools/enumeration/ruview-wifi-sensing.md).

# RuView WiFi Sensing

[RuView](https://github.com/ruvnet/RuView) est une plateforme expérimentale de détection Wi‑Fi. Au lieu d’utiliser une caméra, elle étudie comment les signaux Wi‑Fi changent quand quelqu’un bouge, s’assoit, respire ou traverse une pièce.

<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>Démo de l’Observatoire RuView depuis le dépôt officiel.</p></figcaption></figure>

{% hint style="info" %}
Utilisez RuView uniquement dans des laboratoires ou des espaces autorisés où les personnes savent qu’elles sont surveillées. Considérez les sorties de présence, de pose, de chute et de signes vitaux comme des signaux de recherche, sauf si vous les validez indépendamment.
{% endhint %}

## Démos visuelles et vidéos

Utilisez ces visuels pour comprendre le projet avant d’essayer le matériel. Commencez par la démo, puis comparez ce que l’interface affiche avec vos propres expériences contrôlées.

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

### Observatoire en ligne

La démo officielle dans le navigateur enchaîne des scénarios tels que pièce vide, signes vitaux, suivi multi-personnes, détection de chute, surveillance du sommeil, détection d’intrusion, ainsi que recherche et sauvetage.

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

### Démo de fusion de pose

Cette démo est utile pour comprendre la différence entre les données de pose visuelles et l’interprétation du CSI Wi‑Fi. Utilisez-la comme vue conceptuelle, et non comme preuve que chaque pièce fonctionnera de la même façon.

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

### Démo de nuage de points

La démo de nuage de points aide à expliquer l’idée de transformer des entrées de capteurs en une vue spatiale.

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

### Vidéo d’arrière-plan

Cette vidéo n’est pas spécifique à RuView, mais elle donne une explication simple et générale de l’idée académique derrière DensePose à partir du Wi‑Fi.

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

| Visuel                            | Ce qu’il faut observer                                                                   |
| --------------------------------- | ---------------------------------------------------------------------------------------- |
| Démo de l’Observatoire            | Présence, mouvement, confiance, signes vitaux simulés, changement de scénario.           |
| Fusion de pose                    | Comment une sortie de type pose est visualisée et pourquoi la validation est importante. |
| Nuage de points                   | Comment la détection peut devenir une représentation spatiale.                           |
| Vidéo DensePose à partir du Wi‑Fi | Contexte de recherche derrière l’estimation du corps à partir du Wi‑Fi.                  |

## Ce que cela fait

RuView essaie de transformer les changements des signaux Wi‑Fi en informations utiles au niveau d’une pièce :

| Cas d’usage                    | Signification simple                                                                                           |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| Détection de présence          | Y a-t-il quelqu’un dans la pièce ?                                                                             |
| Détection de mouvement         | Quelqu’un marche, s’assoit ou se déplace ?                                                                     |
| Signes vitaux                  | Estimer les tendances de respiration ou de fréquence cardiaque à partir de petits changements de signal.       |
| Reconnaissance d’activité      | Repérer des schémas répétés tels que des gestes, le sommeil, l’activité dans la pièce ou d’éventuelles chutes. |
| Événements de maison connectée | Exposer des états de présence ou d’activité à des systèmes tels que Home Assistant.                            |
| Démos de recherche             | Visualiser des poses basées sur le Wi‑Fi, des nuages de points et des scénarios de détection.                  |

## Comment ça marche

Le Wi‑Fi rebondit déjà dans les pièces. Une personne modifie légèrement ces trajectoires radio. RuView lit ces changements comme **Information sur l’état des canaux** (CSI), nettoie le signal et l’envoie à des modèles ou à des règles simples qui estiment ce qui se passe peut-être.

Flux simple :

```
Signal Wi‑Fi
  -> matériel ESP32 ou compatible CSI
  -> flux CSI
  -> traitement RuView
  -> présence, mouvement, signes vitaux ou visualisation de démo
```

La façon la plus simple d’y penser : une caméra voit des pixels ; RuView voit de petits changements dans les réflexions radio. Cela le rend utile pour la recherche, mais aussi sensible à l’agencement de la pièce, aux meubles, aux murs, au nombre de personnes, à la position de l’antenne et au calibrage.

## Ce dont vous avez besoin

| Objectif                         | Configuration recommandée                                 |
| -------------------------------- | --------------------------------------------------------- |
| Essayer rapidement l’interface   | Démo Docker avec données simulées.                        |
| Apprendre le package Python      | `pip install ruview` ou `pip install wifi-densepose`.     |
| Tester la capture CSI réelle     | Carte ESP32-S3 ou ESP32-C6 avec le firmware RuView.       |
| Meilleure couverture de la pièce | Plusieurs nœuds ESP32 ou un petit maillage.               |
| Expériences de modèle            | Bundle de modèles Hugging Face et jeux de données locaux. |

## Démo rapide Docker

C’est le premier test le plus simple car il ne nécessite pas de matériel.

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

Ouvrir :

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

Utilisez ce mode pour apprendre le tableau de bord, les scénarios et les sorties attendues avant d’acheter ou de flasher du matériel.

## Package Python

Installez le package Python :

```bash
pip install ruview
```

Nom de package alternatif :

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

Installez la prise en charge client optionnelle pour les workflows WebSocket et MQTT :

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

Vérification d’importation de base :

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

## Modèle pré-entraîné

RuView publie des poids de détection Wi‑Fi pré-entraînés sur Hugging Face. Téléchargez-les localement :

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

Utilisez ces fichiers pour l’apprentissage, l’inspection et les expériences. Pour les déploiements en direct, vérifiez les notes actuelles du dépôt, car les formats de modèle et la prise en charge du serveur peuvent changer.

## Configuration matérielle ESP32

Pour une détection CSI réelle, utilisez du matériel ESP32 capable d’exposer les informations des canaux Wi‑Fi. Le README met en avant les ESP32-S3 et ESP32-C6 comme options pratiques.

Processus typique de haut niveau :

1. Construisez ou téléchargez le firmware du nœud CSI ESP32.
2. Flashez le firmware sur la carte.
3. Provisionnez les identifiants Wi‑Fi et l’adresse IP du serveur cible.
4. Démarrez le serveur ou le pont de détection RuView.
5. Ouvrez le tableau de bord et lancez une petite expérience dans la pièce.

Exemple de commande de flash depuis le README du projet :

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

Provisionner le Wi‑Fi :

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

## Premières expériences

Commencez par des expériences simples avant d’essayer la pose ou les signes vitaux :

| Expérience                     | Ce qu’il faut enregistrer                            |
| ------------------------------ | ---------------------------------------------------- |
| Pièce vide                     | Signal de base quand personne n’est là.              |
| Une personne entre             | Changement de présence et niveau de confiance.       |
| Traverser la pièce             | Signal de mouvement et chronométrage.                |
| Rester assis immobile          | Faux positifs et stabilité.                          |
| La porte s’ouvre sans personne | Vérification du bruit environnemental.               |
| Deux personnes entrent         | Si le comptage et le mouvement deviennent instables. |

De bonnes notes rendent le résultat plus utile :

* Disposition de la pièce.
* Positions des capteurs.
* Canal Wi‑Fi.
* Nombre de personnes.
* Murs ou meubles entre les nœuds.
* Tests positifs et négatifs répétés.

## Commandes utiles

Lancer la démo simulée :

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

Télécharger les fichiers du modèle :

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

Construisez le firmware ESP32-C6 à partir du dossier firmware du projet :

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

Lancer une analyse RF en direct de la pièce à partir des scripts du dépôt :

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

## Quand l’utiliser

RuView convient bien pour :

* La recherche en sans-fil et en IoT.
* Les revues de confidentialité pour la détection sans caméra.
* Les expériences de présence dans la maison connectée.
* Comprendre comment le Wi‑Fi peut devenir un capteur.
* Les démonstrations en laboratoire du CSI, du mouvement et des empreintes RF.

Cela ne remplace pas :

* Un dispositif médical certifié.
* Une alarme de sécurité fiable à elle seule.
* Un système d’identité ou de pose au niveau d’une caméra.
* Une validation correcte de la sécurité physique.

## Liste de validation

Avant de faire confiance à une sortie :

1. Vérifiez que la démo ou le serveur fonctionne.
2. Vérifiez que le matériel produit bien du CSI, et pas seulement du RSSI.
3. Enregistrez une ligne de base dans une pièce vide.
4. Répétez chaque test plusieurs fois.
5. Exécutez des tests négatifs qui ne devraient pas déclencher de détection.
6. Comparez les signes vitaux ou les événements de sécurité à une référence indépendante.
7. Documentez les échecs, pas seulement les captures d’écran réussies.

## Références

* [Dépôt officiel de RuView](https://github.com/ruvnet/RuView)
* [Guide utilisateur RuView](https://github.com/ruvnet/RuView/blob/main/docs/user-guide.md)
* [Démo de l’Observatoire en ligne RuView](https://ruvnet.github.io/RuView/)
* [Modèle pré-entraîné RuView sur Hugging Face](https://huggingface.co/ruvnet/wifi-densepose-pretrained)
* [Guide de capture de mouvement 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/fr/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.
