Two fixes for the visual confusion of 'A appears to send two pings back to back':
1. Add 600 ms (sim) guard interval between cycle N's tPing2Recv and cycle N+1's
tPing1Send. Removes the visual hiccup where ping2 (end of cycle N) and ping1
(start of cycle N+1) collided as two consecutive A→B cyan pulses.
2. Distinguish ping2 from ping1 visually: ping1 = solid filled circle, ping2 =
hollow ring (same cyan color). Legend updated. The user can now tell at a
glance which transmission is which without relying on the small label text.
Reported by Flag 2026-04-27, fixed same day.
Self-contained HTML demo with two interactive canvas animations:
- Animation 1: DS-TWR principle (mobile-mobile, both sides know distance)
- Animation 2: USV master + N AUVs, SS-TWR active + passive OWR for non-target listeners
Realistic AUV operating params (1-2 kt cruise, 5-700 m range).
Includes README documenting the protocol, design decisions taken during the
2026-04-27 design conversation between Flag and Poulpe, deployment routing
(Gateway Caddy + Core Caddy path-based), and TODO for future iterations.
Live: https://laboratoire.freeboxos.fr/ping-pong-ping/