{
  "$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"
}