SurfVision finds every surfer and ride; live overlays and measured Session Insights
Analyze
Every clip is processed by SurfVision, Surflink's computer-vision backend: it detects and tracks each surfer, estimates pose, segments rides from paddling, and exports per-frame overlay data. The results appear on the session page (/sessions/[id]) as live overlays on the player and Session Insights beneath it.
SurfVision measures. It does not score maneuvers or write coaching. Every number it produces is labelled for what it is, and the coach decides what it means.
The session page
From top to bottom: a back link, the title / spot / date / status; athlete chips (who is in the session, plus any unassigned tracked surfers); a processing indicator while clips analyze; the video player with the overlay strip beneath it; clip pills to switch clips plus + Add Clips; Session Insights; and a collapsible Session Info panel.
The Video Analysis list (/sessions) filters by status — All / complete / processing / uploading / failed — with a date sort. Only finished analyses count toward an athlete's session totals.
Player shortcuts
Space play/pause · arrow keys seek/step · J / K / L speed · F fullscreen · , and . step one frame.
Live overlays
Overlays are drawn live in the browser from sidecar data — nothing is baked into the video, so every layer is a toggle. The control strip below the video has one eye toggle for show/hide-all, one-tap layer chips, a per-surfer focus, and a More panel with:
- Skeleton — full body + feet pose.
- Compression — leg-bend depth; legs glow warmer the deeper the crouch.
- Gaze — head-facing direction.
- Trail — the smoothed path traced from the back foot.
- Timeline ticks — automatic action tags (turn, air, wipeout…), marked automatic, unscored — confirm before coaching on it.
- Name surfers — attach an athlete's name to a tracked surfer so the label follows them.
- Download with overlays — a client-side export of the clip with the current layers burned in.
Overlays do not render in the browser's native fullscreen — set them first. Older clips analyzed before sidecars existed play their baked video; Re-analyze (offered for cancelled or failed clips) reruns the pipeline.
Session Insights
Everything Surflink says about a clip is derived deterministically from the SurfVision output, with no model call and every number labelled:
- Ride windows — tap one to seek there.
- Stance, with its confidence.
- Per-ride relative speed — a 0–100 index against the clip's own fastest moment, not a measured speed. Real speed comes from the athlete's watch (see Prove).
- Per-ride compression curves.
Assign tracked surfers to athletes
Tracked surfers start out unassigned:
- In the athlete-chips row, unassigned surfers appear as amber chips labelled
#<track_id>. - Click a chip and choose Assign to athlete.
- Use the dashed + Add chip to add another athlete to the session, or hover a chip and click × to remove one.
Assigning links the surfer's measurements to that athlete and lets the athlete see the session.
Annotations
Quick notes anchored to a timestamp, created from the player control bar and listed in a slide-in drawer (filter All / Text / Drawing / Voice, jump-to markers on the seek bar):
- Text note — type and Add Note.
- Drawing — the video pauses and a canvas opens; sketch on the frame and save.
- Voice — Start Recording, then Stop & Save.
Annotations notify the athlete as Feedback. For a narrated lesson that pauses at chosen moments, record a guided review instead — see Review.
Manage clips
Clip pills switch the active clip; + Add Clips uploads more footage into the same session; each pill has a hover × with a confirmation. A Cancel is available while a clip is still analyzing.