Skip to content

feat(itbwifi): local deployment, ITBwifi landing page, Observatory live mode#948

Open
Omrius wants to merge 1 commit into
ruvnet:mainfrom
Omrius:feat/itbwifi-local-deploy
Open

feat(itbwifi): local deployment, ITBwifi landing page, Observatory live mode#948
Omrius wants to merge 1 commit into
ruvnet:mainfrom
Omrius:feat/itbwifi-local-deploy

Conversation

@Omrius
Copy link
Copy Markdown

@Omrius Omrius commented Jun 4, 2026

Summary

  • ITBwifi landing page (ui/itbwifi.html) — landing page avec canvas WebGL animé, squelette 3D, courbe vitaux temps réel, connexion live à l'API localhost:8000
  • Observatory live mode — auto-détection API à :8000, polling REST 5 Hz, adaptateur SensingUpdate, badge DEMO→LIVE
  • Mock data réaliste — 2 personnes assises stables (cohérence temporelle IIR), CSI calme (noise 0.1→0.018, amplitude 0.3→0.04, fréq respiratoire 0.25 Hz)
  • Scripts PowerShellstart-api.ps1 et start-ui.ps1 pour lancement one-click

Test plan

  • start-api.ps1 démarre sans erreur
  • http://localhost:3000/itbwifi.html — canvas animé + données live
  • http://localhost:3000/observatory.html — badge passe DEMO→LIVE en <2s
  • /api/v1/pose/current retourne toujours 2 personnes activity: "sitting"
  • Keypoints anatomiquement stables entre frames (pas de téléportation)

🤖 Generated with Claude Code

…ve mode

## What changed

### New files
- `ui/itbwifi.html` — ITBwifi landing page: Three.js particle canvas, animated
  skeleton demo, REST live data feed from localhost:8000, full feature showcase
- `start-api.ps1` / `start-ui.ps1` — One-click PowerShell launchers for the
  FastAPI backend (port 8000) and static UI server (port 3000)

### Observatory — live data mode
- `ui/observatory/js/main.js`: auto-detects ITBwifi API at localhost:8000 via
  `/health/health`; switches from demo mode to 5 Hz REST polling
  (`/api/v1/pose/current`); adapts the JSON response to the SensingUpdate
  contract expected by the Three.js renderer; DEMO→LIVE badge update
- `ui/observatory.html`: default WS URL updated to correct endpoint
  `ws://localhost:8000/api/v1/stream/pose`

### Realistic mock data (2 seated persons)
- `archive/v1/src/testing/mock_pose_generator.py`: full rewrite — stateful
  `_PersonState` class replaces pure-random generation; always returns exactly
  2 persons in anatomically correct seated pose; temporal coherence via IIR
  low-pass filter (breathing ±0.003, head ±0.004, wrist ±0.006); activity
  locked to "sitting"; confidence stable 0.82–0.94
- `archive/v1/src/testing/mock_csi_generator.py`: noise_level 0.1→0.018,
  movement_amplitude 0.3→0.04, movement_freq 0.5→0.25 Hz (respiratory rate)

## Why
Previous mock generator produced random teleporting skeletons, 1–3 random
persons per frame, and noisy CSI — inconsistent with a real seated 2-person
scene. The Observatory and ITBwifi landing page needed a stable, realistic
data source to demonstrate the system accurately.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant