feat: prototype perimeter patrol, 3D view, and swarm algorithms #5

Open
opened 2026-07-12 12:53:53 +01:00 by eSlider · 0 comments
Owner

Goal

Extend the swarm visualization prototype so operators and reviewers can see perimeter patrol, multi-algorithm swarming, base-pad logistics, and transit escort behavior — without running the Python simulator or k3d stack.

Deliver a browser demo at http://localhost:5173 that matches the behavioral model in 04 — Swarm sync and complements the live T1/T3 explorers.

Why

  • Design docs describe sync, pose broadcasts, and offload — but lack an interactive sandbox for patrol geometry and algorithm trade-offs.
  • Stakeholder demos need a self-contained client (no Parquet lake, no UDP mesh).
  • Prior 2D-only view could not show altitude, escort formation, or shader terrain for perimeter missions.
  • Drone hover/spin and UFO evasive jumps against peers were misleading; steering needed correction before the demo is credible.

What

  • 2D SVG — links, channels, battery, mission stats, base-pad panel, swarm algorithm selector.
  • Optional 3D (header toggle) — Three.js perimeter scene: terrain, detection beams, 4-drone escort sphere, search panel, OrbitControls camera.
  • Swarm algorithms — perimeter, boids, APF, ACO; mycelial set: hypha, frontier, wave, mycelium.
  • Base pad lifecycle — center spawn → deploy to perimeter slots → patrol → return → landing queue (max 2) → recharge + data offload → takeoff.
  • UFO transit — cruise through interior; avoid/fly-over houses only (not drones); stable 2D/3D rendering.
  • Anti-stall patrol — min speed, tangent slot tracking, deterministic bypass, no in-place spin.

Requirements

  • Pure client-side sim in prototype/; npm run build passes (strict TypeScript).
  • Default 2D view unchanged for quick sync demo; 3D off by default.
  • Algorithm switch live without page reload; labels in UI match SwarmAlgorithm ids.
  • 24-drone fleet with escorts, houses, transit craft; base pad state visible in UI.
  • No backend dependency; README documents run steps and what to observe.
  • CI verify job green on PR (simulator gate unaffected; checkout must resolve PR head SHA).

Out of scope

  • Wiring prototype to live T1 WebSocket or real Parquet.
  • New ADR unless a platform boundary changes.
  • prototype-3d/ deprecated tree; all work lives under prototype/.

Tracking

Implementation: PR #4 (feat/prototype-swarm-patrolmain).

## Goal Extend the swarm visualization prototype so operators and reviewers can **see** perimeter patrol, multi-algorithm swarming, base-pad logistics, and transit escort behavior — without running the Python simulator or k3d stack. Deliver a browser demo at `http://localhost:5173` that matches the behavioral model in [04 — Swarm sync](docs/04-swarm-sync.md) and complements the live T1/T3 explorers. ## Why - Design docs describe sync, pose broadcasts, and offload — but lack an interactive sandbox for patrol geometry and algorithm trade-offs. - Stakeholder demos need a self-contained client (no Parquet lake, no UDP mesh). - Prior 2D-only view could not show altitude, escort formation, or shader terrain for perimeter missions. - Drone hover/spin and UFO evasive jumps against peers were misleading; steering needed correction before the demo is credible. ## What - **2D SVG** — links, channels, battery, mission stats, base-pad panel, swarm algorithm selector. - **Optional 3D** (header toggle) — Three.js perimeter scene: terrain, detection beams, 4-drone escort sphere, search panel, OrbitControls camera. - **Swarm algorithms** — perimeter, boids, APF, ACO; mycelial set: hypha, frontier, wave, mycelium. - **Base pad lifecycle** — center spawn → deploy to perimeter slots → patrol → return → landing queue (max 2) → recharge + data offload → takeoff. - **UFO transit** — cruise through interior; avoid/fly-over houses only (not drones); stable 2D/3D rendering. - **Anti-stall patrol** — min speed, tangent slot tracking, deterministic bypass, no in-place spin. ## Requirements - [x] Pure client-side sim in `prototype/`; `npm run build` passes (strict TypeScript). - [x] Default 2D view unchanged for quick sync demo; 3D off by default. - [x] Algorithm switch live without page reload; labels in UI match `SwarmAlgorithm` ids. - [x] 24-drone fleet with escorts, houses, transit craft; base pad state visible in UI. - [x] No backend dependency; README documents run steps and what to observe. - [ ] CI verify job green on PR (simulator gate unaffected; checkout must resolve PR head SHA). ## Out of scope - Wiring prototype to live T1 WebSocket or real Parquet. - New ADR unless a platform boundary changes. - `prototype-3d/` deprecated tree; all work lives under `prototype/`. ## Tracking Implementation: PR #4 (`feat/prototype-swarm-patrol` → `main`).
eSlider added this to the UI Prototype project 2026-07-12 13:01:54 +01:00
eSlider moved this to In Progress in UI Prototype on 2026-07-12 13:02:04 +01:00
eSlider moved this to Done in UI Prototype on 2026-07-12 13:02:35 +01:00
eSlider moved this to In Progress in UI Prototype on 2026-07-12 13:02:53 +01:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eSlider/swarm-house#5