Phase 2: 3D live map driven by API WebSocket #2

Merged
Arnike merged 1 commits from phase-2 into main 2026-06-02 19:48:40 +00:00
Owner
  • apps/live-map/src/hooks/useLiveState.ts: WebSocket subscription
    with exponential-backoff reconnect, polling fallback, status tracking
  • apps/live-map/src/scene/Scene.tsx: refactored Three.js scene with
    per-frame orbit propagation, vessel marker color-coding by owner,
    orbit-line visibility tied to focus filters, smooth camera follow
    on selected vessel/body
  • apps/live-map/src/scene/layout.ts: bodyPositionAt / vesselPositionAt
    helpers (heliocentric frame, walk up the parent chain), logScale
    helpers for the system view
  • apps/live-map/src/scene/color.ts: per-body and per-owner color maps
  • apps/live-map/src/panels/TimeControls.tsx: play/pause/reverse/reset
    buttons, ×1/×10/×100/×1k/×10k/×100k speeds, UT scrub slider,
    live-edge indicator (LIVE / Nh behind / Nh ahead)
  • apps/live-map/src/panels/VesselList.tsx: vessel sidebar with click-
    to-track; color-coded by owner (KASA=blue, SPES=orange)
  • apps/live-map/src/panels/FocusPanel.tsx: planet/moon/vessel orbit
    visibility toggles
  • apps/live-map/src/panels/StatusPill.tsx: WS status (LIVE/POLLING/
    OFFLINE/STALE), body + vessel + message counts
  • tests/scene.test.ts: 10 tests for layout helpers (periodicity,
    vessel-centered positioning, logScale round-trips)

End-to-end verified: mock publisher → API → live-map WebSocket →
scene re-renders with the new vessel positions and orbits.

- apps/live-map/src/hooks/useLiveState.ts: WebSocket subscription with exponential-backoff reconnect, polling fallback, status tracking - apps/live-map/src/scene/Scene.tsx: refactored Three.js scene with per-frame orbit propagation, vessel marker color-coding by owner, orbit-line visibility tied to focus filters, smooth camera follow on selected vessel/body - apps/live-map/src/scene/layout.ts: bodyPositionAt / vesselPositionAt helpers (heliocentric frame, walk up the parent chain), logScale helpers for the system view - apps/live-map/src/scene/color.ts: per-body and per-owner color maps - apps/live-map/src/panels/TimeControls.tsx: play/pause/reverse/reset buttons, ×1/×10/×100/×1k/×10k/×100k speeds, UT scrub slider, live-edge indicator (LIVE / Nh behind / Nh ahead) - apps/live-map/src/panels/VesselList.tsx: vessel sidebar with click- to-track; color-coded by owner (KASA=blue, SPES=orange) - apps/live-map/src/panels/FocusPanel.tsx: planet/moon/vessel orbit visibility toggles - apps/live-map/src/panels/StatusPill.tsx: WS status (LIVE/POLLING/ OFFLINE/STALE), body + vessel + message counts - tests/scene.test.ts: 10 tests for layout helpers (periodicity, vessel-centered positioning, logScale round-trips) End-to-end verified: mock publisher → API → live-map WebSocket → scene re-renders with the new vessel positions and orbits.
Arnike added 1 commit 2026-06-02 19:48:35 +00:00
Phase 2: 3D live map driven by API WebSocket
CI / Lint, typecheck, test, build (pull_request) Failing after 9s
9e76ec9328
- apps/live-map/src/hooks/useLiveState.ts: WebSocket subscription
  with exponential-backoff reconnect, polling fallback, status tracking
- apps/live-map/src/scene/Scene.tsx: refactored Three.js scene with
  per-frame orbit propagation, vessel marker color-coding by owner,
  orbit-line visibility tied to focus filters, smooth camera follow
  on selected vessel/body
- apps/live-map/src/scene/layout.ts: bodyPositionAt / vesselPositionAt
  helpers (heliocentric frame, walk up the parent chain), logScale
  helpers for the system view
- apps/live-map/src/scene/color.ts: per-body and per-owner color maps
- apps/live-map/src/panels/TimeControls.tsx: play/pause/reverse/reset
  buttons, ×1/×10/×100/×1k/×10k/×100k speeds, UT scrub slider,
  live-edge indicator (LIVE / Nh behind / Nh ahead)
- apps/live-map/src/panels/VesselList.tsx: vessel sidebar with click-
  to-track; color-coded by owner (KASA=blue, SPES=orange)
- apps/live-map/src/panels/FocusPanel.tsx: planet/moon/vessel orbit
  visibility toggles
- apps/live-map/src/panels/StatusPill.tsx: WS status (LIVE/POLLING/
  OFFLINE/STALE), body + vessel + message counts
- tests/scene.test.ts: 10 tests for layout helpers (periodicity,
  vessel-centered positioning, logScale round-trips)

End-to-end verified: mock publisher → API → live-map WebSocket →
scene re-renders with the new vessel positions and orbits.
Arnike merged commit 1e1a940346 into main 2026-06-02 19:48:40 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Arnike/KSP-MissionControl#2