Commit Graph

4 Commits

Author SHA1 Message Date
griffin 672be201f4
fix(macos-rssi-bridge): make `make start` launch the presence injector too
The 3D Observatory needs an explicit POST to /api/v1/pose/external to
render a single coherent figure — without it the UI shows the placeholder
five-skeleton fallback that doesn't respond to real RSSI variance, which
manifests as a "frozen" figure even when the bridge is emitting frames
and the sensing-server is processing them. presence_to_pose.py is the
component that closes that loop (polls /aps, POSTs one pose at 10 Hz).

`make start` now manages all three children (server, bridge, presence
injector) under one trap, and `make stop` kills the trio. New `make
run-presence` target for running the injector standalone against an
already-running stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 09:50:44 -07:00
griffin 82f15c112a
fix(macos-rssi-bridge): pin sensing-server to --source esp32 in `make start`
The server's --source=auto probes for ESP32 frames *before* the bridge
starts emitting and falls back to `simulate` if it sees none. Simulate
mode never binds UDP, so the bridge then gets ECONNREFUSED on every
send and the UI displays fake (simulated) motion instead of real RSSI
data. Pin --source esp32 explicitly — the bridge IS the ESP32 source.

Also call `make stop` at the top of `make start` so re-running doesn't
collide with a stale instance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 09:47:31 -07:00
griffin 5f8471a7ed
feat(macos-rssi-bridge): add `make start` one-shot orchestration
`make start` builds both binaries, launches the v2 sensing-server and the
bridge under a single process group, opens both UIs (sensing UI on :8080
and the tomography dashboard on :9090/dashboard), and tears both down
cleanly on Ctrl-C via a TRAP. Adds `make stop` for stray-process cleanup
and `make build-server` so the sensing-server build can be invoked
independently. README updated to point at the one-command flow.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 09:44:48 -07:00
griffin e325082e6d
feat(macos-rssi-bridge): Mac WiFi card → sensing-server bridge
Swift CoreWLAN helper + Rust UDP emitter that turns any Mac into a
"node 0" for RuView's sensing-server while waiting on ESP32 hardware.
Wraps multi-BSSID scans into ESP32 CSI frame format (magic 0xC511_0001)
with per-AP RSSI as pseudo-subcarrier amplitude and rolling variance
as the Q channel — pipeline runs unmodified.

Standalone Cargo project (not a v2 workspace member, so the main build
is unaffected). Handles macOS 14.4+ BSSID redaction by synthesizing
stable per-AP identifiers from (channel, RSSI bucket, ordinal).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 09:22:37 -07:00