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.

O que é o RuView, em uma frase?
O 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.
Por que “CSI” importa (e por que seu notebook comum não faz tudo)
Aqui está o pulo do gato:
- 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.
- CSI expõe informações ricas por subportadora (amplitude/fase), permitindo extrair padrões finos do ambiente e do movimento.
O 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.
O que ele consegue detectar hoje
O “cardápio” técnico do projeto:
- Pose estimation: CSI (amplitude/fase por subportadora) → DensePose UV maps / skeleton
- Respiração: bandpass ~0,1–0,5 Hz → pico por FFT (faixa típica 6–30 BPM)
- Batimentos: bandpass ~0,8–2,0 Hz → pico por FFT (faixa típica 40–120 bpm)
- Presença: variação de RSSI + energia de banda de movimento com latência muito baixa
- Through-wall sensing: usando geometria de zona de Fresnel + multipath (o README menciona “até ~5m” em certos cenários)
E 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.
O projeto esta disponível nos seguintes hardware:
- 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.
- NICs de pesquisa (ex.: Intel 5300 / Atheros AR9580) com drivers/patches para CSI no Linux.
- 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.
Arquitetura: do rádio ao 3D
- O RuView não é só “um script”; ele é um sistema completo:
- Captura e streaming (ESP32-S3): captura CSI em frequência definida e pode enviar bruto por UDP para um servidor.
- Processamento e API (Rust): o “sensing server” expõe REST API e WebSocket para frames/vitais/pose e integra com UI.
- Visualização (Observatory/Three.js): um modo “Observatory” para ver cenários (multi-person, fall detect, intrusion, etc.) e animações em 3D.
O 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.

Primeiros passos em 30 segundos (sem instalar ferramentas compiladas localmente)
O caminho mais simples é via Docker:
docker pull ruvnet/wifi-densepose:latestdocker run -p 3000:3000 -p 3001:3001 -p 5005:5005/udp ruvnet/wifi-densepose:latest# depois abra http://localhost:3000
Abaixo as URL da API:
curl http://localhost:3000/healthcurl http://localhost:3000/api/v1/vital-signscurl http://localhost:3000/api/v1/pose/current
Verificação “científica”: pipeline determinístico (sem Wi-Fi real)
Um 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
Ele 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.
Edge Intelligence no ESP32: do “raw streaming” ao “standalone”
O RuView também descreve “tiers” de processamento no próprio ESP32-S3:
- Tier 0: só streaming bruto (raw CSI)
- Tier 1: limpeza + estatística + seleção de subportadoras + compressão
- Tier 2: Tier 1 + presença + vitais + motion scoring + fall detection
- (No README do github, também aparece um tier com módulos WASM, para extensões customizadas)
A ideia é reduzir banda e permitir detecção local sem PC/servidor, dependendo do tier configurado.
Casos de uso que fazem sentido (e por que isso chama tanta atenção)
Quando 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.
Privacidade: “sem câmera” não significa “sem dado sensível”
Mesmo 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.
RESUMO: 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:
- pipeline verificável (hash),
- stack completa (edge → API → UI),
- e documentação extensa,
já torna o repositório um prato cheio para quem pesquisa IA aplicada, sistemas embarcados e computação “ambiental”.
Fonte: https://github.com/ruvnet/RuView