{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihnoqzhmnz7v5e2ioprefok42chzpbuudiz4ezktz7w3dsqemptkm",
"uri": "at://did:plc:3pjw65epwlo3rzajhx6xg4br/app.bsky.feed.post/3mgfesp3cpb32"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibxf5zo3yd4xs2io2bz35itxjxtgg7qqf6dtpr64enz6dm743e2ey"
},
"mimeType": "image/jpeg",
"size": 227901
},
"path": "/2026/03/06/enxergar-pessoas-atraves-das-paredes-com-wi-fi-%cf%80-ruview-wifi-densepose/",
"publishedAt": "2026-03-06T03:56:39.000Z",
"site": "https://assuntonerd.com.br",
"tags": [
"https://github.com/ruvnet/RuView"
],
"textContent": "O projeto **RuView** (tambem chamado de **WiFi DensePose**) é daqueles projetos que parecem ficção científica e bruxaria: **ele estima pose humana, presença e até sinais vitais usando apenas ondas de rádio do Wi-Fi** , sem capturar um único pixel de vídeo, ou seja somente Wifi.\n\n\n\n## O que é o RuView, em uma frase?\n\nO RuView é um sistema open source que analisa perturbações no **CSI (Channel State Information)** do Wi-Fi para reconstruir, em tempo real, **pose humana (skeleton/DensePose), presença e métricas de respiração/batimentos** com foco forte em privacidade, porque não usa câmeras.\nPor que “CSI” importa (e por que seu notebook comum não faz tudo)\n\n## Aqui está o pulo do gato:\n\n * **RSSI** (o que Wi-Fi comum costuma expor) é basicamente “um número por AP” (força do sinal). Serve para presença/movimento de forma bem mais grossa.\n * **CSI** expõe informações ricas por subportadora (amplitude/fase), permitindo extrair padrões finos do ambiente e do movimento.\n\n\n\nO próprio projeto deixa claro: **pose/vitais/through-wall dependem de CSI** ; em laptops comuns você tende a ficar no máximo em presença/movimento via RSSI.\n\n## O que ele consegue detectar hoje\n\nO “cardápio” técnico do projeto:\n\n * **Pose estimation:** CSI (amplitude/fase por subportadora) → **DensePose UV maps / skeleton**\n * **Respiração:** bandpass ~0,1–0,5 Hz → pico por FFT (faixa típica 6–30 BPM)\n * **Batimentos:** bandpass ~0,8–2,0 Hz → pico por FFT (faixa típica 40–120 bpm)\n * **Presença:** variação de RSSI + energia de banda de movimento com latência muito baixa\n * **Through-wall sensing:** usando geometria de zona de Fresnel + multipath (o README menciona “até ~5m” em certos cenários)\nE tem um detalhe importante de responsabilidade: **a estimativa de sinais vitais no firmware alpha é heurística e “não é para uso médico”** melhor com pessoa parada e ambiente controlado.\n\n\n\n## O projeto esta disponível nos seguintes hardware:\n\n * **ESP32-S3** (recomendado) para capturar CSI e montar uma malha (mesh) de sensores; o README cita cenários com ESP32-S3 “~$8” como add-on por zona.\n * **NICs de pesquisa** (ex.: Intel 5300 / Atheros AR9580) com drivers/patches para CSI no Linux.\n * **Sem hardware:** dá para brincar o pipeline com execução determinística/“proof replay”. Além disso, o projeto mostra uma linha interessante para edge AI: um **modelo/embedding de “fingerprint” do ambiente** com **~55 KB** total, cabendo na memória do ESP32, com backbone + head + MicroLoRA por ambiente.\n\n\n\n## Arquitetura: do rádio ao 3D\n\n * O RuView não é só “um script”; ele é um sistema completo:\n * **Captura e streaming (ESP32-S3):** captura CSI em frequência definida e pode enviar bruto por UDP para um servidor.\n * **Processamento e API (Rust):** o “sensing server” expõe **REST API** e **WebSocket** para frames/vitais/pose e integra com UI.\n * **Visualização (Observatory/Three.js):** um modo “Observatory” para ver cenários (multi-person, fall detect, intrusion, etc.) e animações em 3D.\n\n\n\nO projeto também enfatiza performance com um **rewrite em Rust** , citando pipeline completo em ordem de dezenas de microssegundos por frame e um comparativo de speedup vs Python.\n\n\n\n\n\n## Primeiros passos em 30 segundos (sem instalar ferramentas compiladas localmente)\n\nO caminho mais simples é via Docker:\n\n\n docker pull ruvnet/wifi-densepose:latest\n\n\n\n\n docker run -p 3000:3000 -p 3001:3001 -p 5005:5005/udp ruvnet/wifi-densepose:latest\n\n\n\n\n # depois abra http://localhost:3000\n\nAbaixo as URL da API:\n\n\n curl http://localhost:3000/health\n\n\n\n\n curl http://localhost:3000/api/v1/vital-signs\n\n\n\n\n curl http://localhost:3000/api/v1/pose/current\n\n## Verificação “científica”: pipeline determinístico (sem Wi-Fi real)\n\nUm pedaço que eu achei muito bem pensado: o projeto oferece um modo **“verify”** para confirmar que o pipeline de sinal é real e reproduzível sem hardware, sem GPU, sem Docker. Para isto basta usar o comando ./verify\n\nEle roda checagem de ambiente, replay de um sinal de referência por toda a cadeia (filtragem, janelamento, FFT/Doppler etc.) e compara um **hash SHA-256** do resultado.\n\n## Edge Intelligence no ESP32: do “raw streaming” ao “standalone”\n\nO RuView também descreve “tiers” de processamento no próprio ESP32-S3:\n\n * **Tier 0:** só streaming bruto (raw CSI)\n * **Tier 1:** limpeza + estatística + seleção de subportadoras + compressão\n * **Tier 2:** Tier 1 + presença + vitais + motion scoring + **fall detection**\n * (No README do github, também aparece um tier com módulos WASM, para extensões customizadas)\n\n\n\nA ideia é reduzir banda e permitir detecção local sem PC/servidor, dependendo do tier configurado.\n\n## Casos de uso que fazem sentido (e por que isso chama tanta atenção)\n\nQuando você junta “funciona no escuro”, “não precisa line-of-sight” e “sem câmera”, começa a aparecer uma lista enorme de aplicações. Por exemplo, como **monitoramento de idosos (quedas/sono), segurança perimetral, ambientes industriais e robótica** , entre outros. A parte legal aqui é que não é só “conceito”: o projeto também discute limitações físicas (subportadoras, multipath, atenuação por metal) e escalabilidade por múltiplos APs/nós.\n\n## Privacidade: “sem câmera” não significa “sem dado sensível”\n\nMesmo sendo **privacy-first** (sem imagem/vídeo), o próprio user guide lembra que **posição, movimento e sinais vitais ainda são dados pessoais** e podem cair em regulações dependendo do contexto.\n\nRESUMO: RuView é um daqueles projetos que redefinem o que a gente entende por “sensor”: em vez de adicionar mais uma câmera ao mundo, ele tenta extrair informação do que já está no ar **ondas de rádio**. E mesmo que você não vá colocar isso em produção amanhã, só o fato de ter:\n\n * pipeline verificável (hash),\n * stack completa (edge → API → UI),\n * e documentação extensa,\n\n\n\njá torna o repositório um prato cheio para quem pesquisa IA aplicada, sistemas embarcados e computação “ambiental”.\n\nFonte: https://github.com/ruvnet/RuView",
"title": "Enxergar pessoas através das paredes com Wi-Fi – π RuView: WiFi DensePose"
}