Put the next target inside a pair of swim goggles
A custom Android application on Vuzix Smart Swim goggles shows the nearest target's class, range, heading cue, and a reduced map of the basin.
Why this stage exists
Perception is useless to a swimmer holding a mesh bag unless it becomes a direction and a distance. Vuzix Smart Swim is an Android wearable with a monocular full-colour display and wireless connectivity, so it can be reprogrammed from a lap-counting device into a guidance display.
How it was done
- 1
Select the next target by nearest neighbour
Given the set of mapped targets and the current position, the system picks the target with the smallest Euclidean distance, then displays that distance and the relative planar bearing, computed as atan2(y_target − y, x_target − x) − ψ, so the arrow points where the swimmer should turn.
- 2
Show three things and nothing else
The head-up display carries a compass-like pointer to the nearest target, a range readout in metres, and a reduced map of Peter Street Basin with the current position and previously registered detections. Raw detection output stays off the display.
- 3
Stream target updates over Wi-Fi
The goggles receive basin-coordinate target updates from the host laptop and re-render the cues at roughly 5–10 Hz, which is enough for real-time guidance at swimming speed.
- 4
Respect the monocular display
Because the display is monocular, it leaves part of the natural field of view intact. In open water that is a safety property, not a limitation, and it argues for compact cues over dense overlays.

Decisions and trade-offs
Where the code lives
SmartSwimHUD/Android application for Vuzix Smart Swim: network client for target updates, compass and range rendering, and the reduced basin map view.
What still bites
- Live position relies on heading plus dead reckoning, so the arrow degrades as drift accumulates.
- A monocular display in bright outdoor water constrains how much text is legible at a glance.