{"id":50371628,"url":"https://github.com/vladimir120307-droid/wavesight","last_synced_at":"2026-05-30T07:04:06.655Z","repository":{"id":359968537,"uuid":"1248199851","full_name":"vladimir120307-droid/wavesight","owner":"vladimir120307-droid","description":"Honest open-source WiFi \u0026 UWB sensing platform. See presence, motion, breath without cameras or cloud.","archived":false,"fork":false,"pushed_at":"2026-05-24T10:54:14.000Z","size":205,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T12:23:22.616Z","etag":null,"topics":["csi","esp32","fall-detection","iot","local-first","open-source","privacy-first","rust","sleep-tracking","smart-home","uwb","wifi-sensing"],"latest_commit_sha":null,"homepage":"https://github.com/vladimir120307-droid/wavesight","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladimir120307-droid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"vladimir120307-droid"}},"created_at":"2026-05-24T10:19:34.000Z","updated_at":"2026-05-24T10:54:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vladimir120307-droid/wavesight","commit_stats":null,"previous_names":["vladimir120307-droid/wavesight"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/vladimir120307-droid/wavesight","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir120307-droid%2Fwavesight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir120307-droid%2Fwavesight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir120307-droid%2Fwavesight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir120307-droid%2Fwavesight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladimir120307-droid","download_url":"https://codeload.github.com/vladimir120307-droid/wavesight/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir120307-droid%2Fwavesight/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33682998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csi","esp32","fall-detection","iot","local-first","open-source","privacy-first","rust","sleep-tracking","smart-home","uwb","wifi-sensing"],"created_at":"2026-05-30T07:04:06.000Z","updated_at":"2026-05-30T07:04:06.649Z","avatar_url":"https://github.com/vladimir120307-droid.png","language":"Rust","funding_links":["https://github.com/sponsors/vladimir120307-droid"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# WaveSight\n\n**Honest open-source WiFi \u0026 UWB sensing platform — see motion, breath and presence without cameras, without cloud, without hype.**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Rust](https://img.shields.io/badge/built%20with-Rust-orange.svg)](https://www.rust-lang.org)\n[![ESP-IDF](https://img.shields.io/badge/firmware-ESP--IDF%20v5-red.svg)](https://idf.espressif.com)\n[![Docs](https://img.shields.io/badge/docs-EN%20%7C%20RU-blue.svg)](docs/)\n[![Discord](https://img.shields.io/badge/chat-Discord-7289DA.svg)](#community)\n\n\u003csub\u003eEnglish · [Русский](#русская-версия)\u003c/sub\u003e\n\n\u003c/div\u003e\n\n---\n\n## What is WaveSight?\n\nWaveSight turns ordinary WiFi and UWB radio signals into spatial intelligence: who is in the room, are they breathing, did they fall, are they asleep. It does this **on a $20 ESP32 mesh**, **on the edge**, and **without ever shipping a frame of video anywhere**.\n\nWe built WaveSight because the existing public projects (RuView, several academic toolkits) over-promise on the marketing side and under-deliver on physics. Single-antenna ESP32 cannot magically reconstruct a MIMO array. So we did three things differently:\n\n1. **We added real diversity** — ESP32-C5 / C6 nodes (WiFi 6 / 6E, true 2-stream MIMO) plus optional UWB anchors (DWM3000, real angle-of-arrival).\n2. **We refuse to ship numbers we cannot verify** — every shipped metric has a ground-truth pipeline, error bars, and a YouTube video reproducing it.\n3. **We ship three production verticals out of the box** — `EldGuard` (fall detection), `SleepWave` (sleep staging) and `PresenceOS` (occupancy for smart-home).\n\n\u003e WaveSight is in **alpha**. We are documenting honestly what works, what is on the roadmap, and what is research-grade. See [ROADMAP.md](ROADMAP.md).\n\n---\n\n## At a glance\n\n```\n                  ┌──────────────────────────────────────────────────────┐\n                  │                       WaveSight                       │\n                  │                                                      │\n   ESP32-S3 ─┐    │   ┌──────────┐   ┌──────────┐   ┌─────────────────┐  │\n   ESP32-C5 ─┼───►│   │ csi-     │──►│ dsp +    │──►│ inference       │  │\n   DWM3000  ─┘    │   │ ingest   │   │ fusion   │   │ (Candle / ONNX) │  │\n   (mesh)         │   └──────────┘   └──────────┘   └────────┬────────┘  │\n                  │                                          ▼           │\n                  │   ┌───────────────────────────────────────────────┐  │\n                  │   │  api  ·  storage  ·  cli  ·  honest-bench     │  │\n                  │   └───────────────────────────────────────────────┘  │\n                  │                          │                           │\n                  │       ┌──────────────────┼──────────────────┐        │\n                  │       ▼                  ▼                  ▼        │\n                  │  Dashboard 3D       Mobile (Flutter)   Home Assistant│\n                  │  (React + Three)     iOS · Android      Matter · MQTT│\n                  └──────────────────────────────────────────────────────┘\n```\n\n---\n\n## Features\n\n- **Multi-node WiFi CSI sensing** with sub-microsecond PTP time-sync between ESP32 nodes.\n- **UWB sensor fusion** (DWM3000) for true angle-of-arrival — solves the single-antenna problem RuView hand-waves away.\n- **Presence, pose, vitals, fall, sleep, activity** — one platform, six trained heads, all running on-edge.\n- **3D room reconstruction** in the dashboard via Three.js — see people as figures inside a model of your floor plan.\n- **Honest Mode**: every prediction shows a confidence interval. If we are unsure, we say so.\n- **Reproducible benchmarks**: `wavesight bench` runs the same scenarios on your hardware against published reference numbers.\n- **100% local-first**: no cloud, no telemetry by default, no account.\n- **Signed firmware \u0026 measurements**: SLSA-aligned supply chain attestation.\n- **Native Home Assistant, MQTT, Matter, HomeKit (via Matter), Telegram** integrations.\n- **Cross-platform mobile app** (Flutter) for live monitoring and fall alerts.\n\n---\n\n## Hardware tiers\n\n| Tier      | Bill of materials                                              | Approx. cost | What you get                                |\n| --------- | -------------------------------------------------------------- | ------------ | ------------------------------------------- |\n| **Entry**    | 2 × ESP32-S3                                                | $20          | Presence + simple motion                    |\n| **Standard** | 3 × ESP32-C5 + 1 × DWM3000                                  | $80          | Pose, vitals, fall detection                |\n| **Pro**      | 6 × ESP32-C5 + 3 × DWM3000 + Raspberry Pi 5                 | $250         | Multi-room 3D, sleep staging, full fusion   |\n| **Research** | + Intel AX210 / Nordic nRF7002 reference NIC + RGB-D camera | $400+        | Ground-truth calibration \u0026 paper-grade eval |\n\nDetailed build guides live in [`docs/hardware/`](docs/hardware/).\n\n---\n\n## Honest comparison vs RuView\n\n| Aspect                     | RuView                          | **WaveSight**                                      |\n| -------------------------- | ------------------------------- | ----------------------------------------------- |\n| Hardware                   | ESP32-S3 only (single antenna)  | **+ ESP32-C5/C6 (MIMO) + UWB DWM3000 (true AoA)** |\n| Through-wall demos         | Claimed, no public reproducible | **Public video + dataset for every claim**       |\n| Pose accuracy (PCK@20)     | ~2.5% camera-free               | **Target ≥ 25% — published with error bars**     |\n| Setup hardware             | Cognitum Seed (~$140) required  | **Raspberry Pi 5 or any x86 PC**                 |\n| Confidence intervals in UI | No                              | **Yes — Honest Mode by default**                 |\n| Vertical apps              | Toolkit                         | **3 production-ready: EldGuard, SleepWave, PresenceOS** |\n| Mobile app                 | None                            | **Flutter app: iOS + Android**                   |\n| Languages                  | EN docs only                    | **EN + RU full parity**                          |\n| Mesh time-sync             | NTP-grade                       | **IEEE 1588 PTP, sub-μs**                        |\n\nThe intent of this table is not to dunk on RuView — it's to make explicit the technical trade-offs we are choosing differently.\n\n---\n\n## Quick start\n\n\u003e Full step-by-step guide: [`docs/en/getting-started.md`](docs/en/getting-started.md) · [`docs/ru/быстрый-старт.md`](docs/ru/быстрый-старт.md)\n\nPrerequisites: Rust 1.78+, ESP-IDF 5.2+, Node 20+, Python 3.11+, two or more ESP32-S3 / C5 boards.\n\n```bash\n# 1. clone\ngit clone https://github.com/vladimir120307-droid/wavesight.git\ncd wavesight\n\n# 2. flash firmware on each ESP32 node\ncd firmware/esp32-csi-node\nidf.py set-target esp32s3\nidf.py -p /dev/ttyUSB0 flash monitor\n\n# 3. start the edge server\ncd ../../server\ncargo run --release --bin wavesight -- serve\n\n# 4. start the dashboard\ncd ../dashboard\npnpm install \u0026\u0026 pnpm dev\n# open http://localhost:5173\n```\n\nYou should see live CSI streams and a presence indicator within 60 seconds of node power-on.\n\n---\n\n## Project layout\n\n```\nwavesight/\n├── firmware/        # ESP32 / UWB firmware (Rust + C, ESP-IDF v5)\n├── server/          # Rust workspace: ingest, dsp, fusion, inference, api, cli\n├── dashboard/       # React + Vite + Three.js (TypeScript)\n├── mobile/          # Flutter iOS/Android app\n├── training/        # PyTorch training pipelines + datasets\n├── eval/            # Honest benchmarks + ground-truth tooling\n├── integrations/    # Home Assistant, Matter, MQTT, Telegram\n├── examples/        # EldGuard, SleepWave, PresenceOS vertical demos\n├── docs/            # EN + RU documentation, ADRs, hardware guides\n└── scripts/         # Build, release, dev helpers\n```\n\n---\n\n## Roadmap\n\nSee [ROADMAP.md](ROADMAP.md) for the full multi-phase plan. Headline milestones:\n\n- **M0 — Foundation** (this commit): repo, CI, docs skeleton, ADRs.\n- **M1 — First photon**: ESP32-S3 streams CSI to server, presence works.\n- **M2 — Mesh \u0026 fusion**: PTP sync, multi-node Kalman fusion.\n- **M3 — Vitals**: HR + breathing within ±2 BPM of reference.\n- **M4 — Pose \u0026 fall**: 17-keypoint pose, EldGuard MVP.\n- **M5 — Sleep \u0026 smart-home**: SleepWave + PresenceOS, Home Assistant integration.\n- **M6 — Honest 1.0**: full benchmark suite, public dataset, video demos, launch.\n\n---\n\n## Documentation\n\n| | EN | RU |\n|---|---|---|\n| Getting started | [getting-started.md](docs/en/getting-started.md) | [быстрый-старт.md](docs/ru/быстрый-старт.md) |\n| Architecture | [architecture.md](docs/en/architecture.md) | [архитектура.md](docs/ru/архитектура.md) |\n| Hardware guide | [hardware/](docs/hardware/) | [hardware/](docs/hardware/) |\n| ADRs | [docs/adr/](docs/adr/) | — |\n| Honest benchmarks | [eval/](eval/) | — |\n\n---\n\n## Contributing\n\nWe welcome contributions of every shape — hardware tests, dataset captures, model training, dashboard polish, translations. Start with [CONTRIBUTING.md](CONTRIBUTING.md), pick a `good-first-issue` label, and say hello in Discussions.\n\nThis is a public project, but it is also a personal mission of the maintainer to ship something genuinely useful in this space — please be patient with review cadence.\n\n---\n\n## Security\n\nWe take RF-sensing seriously. WaveSight could plausibly be misused to track people without consent. Please read [SECURITY.md](SECURITY.md) for our threat model, responsible-disclosure policy and the consent guidelines we ship with the dashboard.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE). Copyright © 2026 Cyber_Lord (Vladimir120307@gmail.com).\n\n---\n\u003ca id=\"русская-версия\"\u003e\u003c/a\u003e\n\n# WaveSight (по-русски)\n\n**Честная open-source платформа для WiFi и UWB-сенсинга. Видим движение, дыхание и присутствие — без камер, без облака, без хайпа.**\n\n## Что это\n\nWaveSight превращает обычные WiFi и UWB радиосигналы в пространственный интеллект: кто в комнате, дышит ли человек, упал ли он, спит ли. Всё это работает **на ESP32-меше за $20**, **локально на устройстве**, и **без отправки единого кадра видео куда бы то ни было**.\n\nМы построили WaveSight, потому что существующие публичные проекты (RuView, ряд академических тулкитов) много обещают в маркетинге и мало предъявляют в физике. ESP32 с одной антенной не может магически реконструировать MIMO-массив. Поэтому мы пошли другим путём:\n\n1. **Реальное hardware-разнообразие** — ESP32-C5/C6 (WiFi 6/6E, настоящее 2-stream MIMO) плюс опциональные UWB-якоря (DWM3000, реальный angle-of-arrival).\n2. **Не публикуем цифры, которые не можем воспроизвести** — каждая метрика снабжена pipeline ground-truth, error bars и YouTube-видео.\n3. **Сразу три production-вертикали** — `EldGuard` (детекция падений), `SleepWave` (стадирование сна) и `PresenceOS` (occupancy для умного дома).\n\n\u003e WaveSight в стадии **alpha**. Мы честно документируем, что уже работает, что в roadmap, и что — research-grade. См. [ROADMAP.md](ROADMAP.md).\n\n## Возможности\n\n- **Multi-node WiFi CSI-сенсинг** с PTP-синхронизацией с точностью меньше микросекунды.\n- **UWB sensor fusion** (DWM3000) для настоящего angle-of-arrival — решаем проблему одной антенны, на которую RuView закрывает глаза.\n- **Presence, pose, vitals, fall, sleep, activity** — одна платформа, шесть обученных голов, всё работает on-edge.\n- **3D-реконструкция комнаты** в дашборде через Three.js — видим людей как фигурки внутри плана квартиры.\n- **Honest Mode**: каждое предсказание показывает доверительный интервал. Если модель не уверена — пишем «не уверена».\n- **Воспроизводимые бенчмарки**: `wavesight bench` запускает те же сценарии на вашем железе и сравнивает с опубликованными цифрами.\n- **100% local-first**: ни облака, ни телеметрии, ни аккаунтов.\n- **Подписанные прошивки и измерения**: supply chain attestation по образцу SLSA.\n- **Нативные интеграции Home Assistant, MQTT, Matter, HomeKit (через Matter), Telegram**.\n- **Кросс-платформенное мобильное приложение** (Flutter) для живого мониторинга и push-алертов о падениях.\n\n## Hardware-уровни\n\n| Уровень    | Состав                                              | Цена  | Что получаем                                          |\n| ---------- | --------------------------------------------------- | ----- | ----------------------------------------------------- |\n| **Entry**     | 2 × ESP32-S3                                      | $20   | Presence + простая детекция движения                  |\n| **Standard**  | 3 × ESP32-C5 + 1 × DWM3000                        | $80   | Поза, vitals, детекция падений                        |\n| **Pro**       | 6 × ESP32-C5 + 3 × DWM3000 + Raspberry Pi 5       | $250  | 3D по комнатам, sleep staging, полный fusion          |\n| **Research**  | + Intel AX210 / nRF7002 + RGB-D камера            | $400+ | Ground-truth калибровка, paper-grade evaluation       |\n\nПодробные сборочные гайды лежат в [`docs/hardware/`](docs/hardware/).\n\n## Быстрый старт\n\n\u003e Полный пошаговый гайд: [`docs/ru/быстрый-старт.md`](docs/ru/быстрый-старт.md)\n\nТребования: Rust 1.78+, ESP-IDF 5.2+, Node 20+, Python 3.11+, две и более платы ESP32-S3 / C5.\n\n```bash\ngit clone https://github.com/vladimir120307-droid/wavesight.git\ncd wavesight\n\ncd firmware/esp32-csi-node\nidf.py set-target esp32s3\nidf.py -p /dev/ttyUSB0 flash monitor\n\ncd ../../server\ncargo run --release --bin wavesight -- serve\n\ncd ../dashboard\npnpm install \u0026\u0026 pnpm dev\n```\n\nВ течение минуты после включения нод вы должны увидеть live CSI-потоки и индикатор присутствия.\n\n## Дорожная карта\n\nПолный план фаз — [ROADMAP.md](ROADMAP.md). Ключевые milestones:\n\n- **M0 — Фундамент** (этот коммит): репо, CI, скелет доков, ADR.\n- **M1 — Первый фотон**: ESP32-S3 шлёт CSI на сервер, presence работает.\n- **M2 — Mesh и fusion**: PTP-синхронизация, мультинодовый Kalman fusion.\n- **M3 — Vitals**: HR + дыхание в пределах ±2 BPM от референса.\n- **M4 — Pose и fall**: 17-точечная поза, MVP EldGuard.\n- **M5 — Sleep и smart-home**: SleepWave + PresenceOS, интеграция с Home Assistant.\n- **M6 — Честная 1.0**: полный benchmark suite, публичный датасет, видео-демо, запуск.\n\n## Документация\n\n| | EN | RU |\n|---|---|---|\n| Старт | [getting-started.md](docs/en/getting-started.md) | [быстрый-старт.md](docs/ru/быстрый-старт.md) |\n| Архитектура | [architecture.md](docs/en/architecture.md) | [архитектура.md](docs/ru/архитектура.md) |\n| Hardware | [hardware/](docs/hardware/) | [hardware/](docs/hardware/) |\n| ADR | [docs/adr/](docs/adr/) | — |\n\n## Вклад\n\nБудем рады контрибьюциям любого формата — тесты на железе, сбор датасетов, обучение моделей, перевод документации, дизайн дашборда. Начните с [CONTRIBUTING.md](CONTRIBUTING.md), возьмите issue с лейблом `good-first-issue`, заходите в Discussions поздороваться.\n\n## Безопасность\n\nRF-сенсинг — серьёзная вещь. WaveSight теоретически можно использовать для слежки без согласия. Прочитайте [SECURITY.md](SECURITY.md), там описана наша threat model, политика responsible disclosure и встроенные в дашборд гайдлайны по согласию.\n\n## Лицензия\n\nMIT — см. [LICENSE](LICENSE). © 2026 Cyber_Lord (Vladimir120307@gmail.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimir120307-droid%2Fwavesight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladimir120307-droid%2Fwavesight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimir120307-droid%2Fwavesight/lists"}