Demo Gallery / Test Video

Test Video

Jun 20, 2026 ·19:25 ·4 players ✦ AI ANALYZED
289
Total Shots
65
Rallies
58%
Active Play
1,840
Frames Analyzed
Match Replay & Skeleton Overlay
VIDEO SIZE
,/. step · / 5s · Space play
Full AI Analysis
🎯 How accurate is this analysis? AI estimate — tap to learn more

CV 360's AI watches every frame to estimate what happened on court. Think of it as a smart coaching assistant, not a precise measuring tool — how accurate it is depends a lot on your footage.

✅ Most reliable
  • Players detected & court-coverage heatmap
  • Active-play % and rally count
  • Overall shot volume & shot mix (soft vs hard)
≈ Treat as estimates
  • Exact shot labels (serve / dink / drive)
  • Ball speed (mph) & precise timestamps
  • Skill / DUPR band — a single-video guess, not an official rating
📹 Get sharper results next time
  • One steady camera behind the baseline, framing a single court
  • Use a tripod — avoid shaky or moving shots
  • Record in the highest resolution you can (1080p or better)
  • Keep other courts & crowds out of frame; even, bright lighting helps a lot

🏆 Performance Score

Avg Player
Pro Player
You
60 Overall
Score
vs Avg: -5
Footwork
72
Balance
60
Shot Accuracy
61
Reaction Speed
42
Footwork
▲ 10 vs avg
Balance
▼ 8 vs avg
Shot Acc.
▼ 4 vs avg
Reaction
▼ 18 vs avg

🎯 CV 360 Skill Estimate

Match average 2.5–3.0 Improving Beginner
Player 1 92% confidence
3.0–3.5
Intermediate · score 49/100
Kitchen control 100
Kitchen 86%, transition 10%, baseline 4%.
Shot variety & touch 43
FH 77% / BH 14% / OH 0% / dink 9% over 56 shots.
Reaction speed 32
Avg 1369ms, fastest 630ms over 56 shots.
Footwork & coverage 48
Lateral range 0.38, depth range 0.27.
Biomechanics 0
Insufficient pose data.
Player 2 92% confidence
3.0–3.5
Intermediate · score 45/100
Kitchen control 100
Kitchen 85%, transition 0%, baseline 15%.
Shot variety & touch 20
FH 90% / BH 10% / OH 0% / dink 0% over 61 shots.
Reaction speed 45
Avg 1063ms, fastest 630ms over 28 shots.
Footwork & coverage 39
Lateral range 0.33, depth range 0.18.
Biomechanics 0
Insufficient pose data.
Player 3 90% confidence
3.0–3.5
Intermediate · score 46/100
Kitchen control 100
Kitchen 92%, transition 7%, baseline 1%.
Shot variety & touch 29
FH 71% / BH 29% / OH 0% / dink 0% over 28 shots.
Reaction speed 32
Avg 1283ms, fastest 630ms over 37 shots.
Footwork & coverage 48
Lateral range 0.38, depth range 0.27.
Biomechanics 0
Insufficient pose data.
Player 4 77% confidence
2.5–3.0
Improving Beginner · score 35/100
Kitchen control 65
Kitchen 28%, transition 41%, baseline 31%.
Shot variety & touch 21
FH 89% / BH 11% / OH 0% / dink 0% over 18 shots.
Reaction speed 32
Avg 1459ms, fastest 630ms over 26 shots.
Footwork & coverage 50
Lateral range 0.43, depth range 0.21.
Biomechanics 0
Insufficient pose data.
Heads up: CV 360 Skill Estimate is a per-video heuristic and is not affiliated with DUPR or any official rating body. Real-world DUPR is calculated from match wins and losses against other rated players over time — this number reflects only the on-screen play in this single video. Use it for self-comparison and trend-spotting across your own uploads, not as a substitute for an official rating.

🦴 Body Mapping & Posture Analysis

Pose skeleton overlay
Player 1
P1
P1
Player 2
P2
P2
Player 3
P3
P3
Player 4
P4
P4
Skeleton overlay — YOLO11s-Pose 17-keypoint estimation
Player 1
Player 1
108 shots detected
Needs Improvement
Knee Angle (L)
166°
Knee Angle (R)
160°
Knee Position
Good
Stance Width
Too Wide
Back Alignment
Good
Weight Balance
Unbalanced
⚠ Issues (2)
• Stance too wide
• Weight shifted to one side
💡 Tips to Improve
→ Narrow stance slightly for quicker lateral movement
→ Center your weight evenly over both feet
🏓 Shot Breakdown
Dinks: 15 Drops: 1 Drives: 16 Serves: 4 Returns: 15 Volleys: 57
827 frames analyzed
Player 2
Player 2
66 shots detected
Poor
Knee Angle (L)
169°
Knee Angle (R)
170°
Knee Position
Too Straight
Stance Width
Too Wide
Back Alignment
Good
Weight Balance
Unbalanced
⚠ Issues (3)
• Knees too straight / locked
• Stance too wide
• Weight shifted to one side
💡 Tips to Improve
→ Bend knees more — aim for 130–160° for an athletic ready position
→ Narrow stance slightly for quicker lateral movement
→ Center your weight evenly over both feet
🏓 Shot Breakdown
Dinks: 4 Drives: 3 Volleys: 59
556 frames analyzed
Player 3
Player 3
59 shots detected
Needs Improvement
Knee Angle (L)
165°
Knee Angle (R)
168°
Knee Position
Good
Stance Width
Too Wide
Back Alignment
Good
Weight Balance
Unbalanced
⚠ Issues (2)
• Stance too wide
• Weight shifted to one side
💡 Tips to Improve
→ Narrow stance slightly for quicker lateral movement
→ Center your weight evenly over both feet
🏓 Shot Breakdown
Dinks: 8 Drives: 10 Returns: 5 Volleys: 36
863 frames analyzed
Player 4
Player 4
56 shots detected
Needs Improvement
Knee Angle (L)
163°
Knee Angle (R)
167°
Knee Position
Good
Stance Width
Too Wide
Back Alignment
Good
Weight Balance
Unbalanced
⚠ Issues (2)
• Stance too wide
• Weight shifted to one side
💡 Tips to Improve
→ Narrow stance slightly for quicker lateral movement
→ Center your weight evenly over both feet
🏓 Shot Breakdown
Drops: 1 Drives: 10 Serves: 20 Returns: 16 Volleys: 9
194 frames analyzed
Total keypoint detections: 2440

🏋 Biomechanical Analysis

🦵 Knee Angles
77.8°
Min
165.8°
Avg
180°
Max
Ready Position (130–170°)50.6%
Deep Bend (<130°)1.9%
Nearly Straight (>170°)47.4%
💪 Elbow / Arm Flex
Left Elbow
138.6°
0.6° – 180°
Right Elbow
143.2°
0.1° – 180°
Compact (<90°): tight backswing/follow-through
Active (90–145°): engaged hitting arm
Extended (>145°): full arm extension on drives
📏 Arm Reach & Stance
Arm Reach (relative to frame height)
0.001
Min
0.054
Avg
0.238
Max
Peak reach indicates overhead/drive shots; low reach = compact dinks
Stance Width Ratio (ankle/shoulder)
1.95
Avg Ratio
0.1 – 4.99
Range
Ideal: 1.0–1.6 (shoulder-width+ stance for CV 360)
Per-Player Arm Mechanics
Player 1
Player 1
Elbow: 145° (Active)
Arm reach: 0.061 (Compact)
Player 2
Player 2
Elbow: 143.8° (Active)
Arm reach: 0.038 (Compact)
Player 3
Player 3
Elbow: 137.3° (Active)
Arm reach: 0.053 (Compact)
Player 4
Player 4
Elbow: 129.6° (Active)
Arm reach: 0.074 (Compact)

🕐 Shot Events Timeline

289 Total Events
~1 mph Avg Wrist Speed
~3 mph Peak Wrist Speed
0 Burst Shots
Dinks
27
Drops
2
Drives
39
Serves
24
Returns
36
Volleys
161
Event Log
00:03 Volleys Dink ~0mph P1
00:09 Volleys Dink ~0mph P1
00:25 Returns Soft ~1mph P2
00:26 Volleys Soft ~1mph P2
00:27 Returns Dink ~0mph P2
00:27 Returns Dink ~1mph P2
00:29 Volleys Dink ~0mph P1
00:38 Volleys Dink ~0mph P1
00:39 Volleys Dink ~1mph P2
00:39 Volleys Dink ~1mph P3
00:40 Volleys Dink ~0mph P2
00:42 Volleys Dink ~0mph P2
00:43 Volleys Dink ~0mph P1
00:44 Volleys Dink ~1mph P3
00:45 Dinks Dink ~0mph P2
00:46 Volleys Dink ~0mph P2
00:50 Dinks Dink ~0mph P2
00:51 Volleys Dink ~0mph P2
00:51 Volleys Dink ~0mph P3
00:52 Volleys Dink ~1mph P2
00:53 Drives Soft ~1mph P2
00:54 Volleys Dink ~1mph P2
00:55 Returns Dink ~0mph P2
01:00 Volleys Dink ~1mph P1
01:00 Returns Dink ~1mph P4
01:01 Volleys Dink ~1mph P1
01:09 Dinks Dink ~0mph P2
01:09 Volleys Dink ~0mph P2
01:10 Volleys Dink ~0mph P2
01:10 Volleys Dink ~0mph P2
01:19 Volleys Dink ~0mph P1
01:21 Volleys Dink ~1mph P2
01:21 Drives Soft ~1mph P1
01:22 Drives Soft ~1mph P2
01:22 Drives Soft ~1mph P2
01:23 Drives Soft ~1mph P2
01:24 Volleys Dink ~0mph P1
01:24 Volleys Dink ~1mph P2
01:28 Serves Dink ~1mph P4
01:28 Dinks Dink ~0mph P2
01:31 Volleys Dink ~1mph P2
01:33 Volleys Dink ~1mph P2
01:39 Drives Soft ~1mph P2
01:40 Volleys Soft ~1mph P2
01:40 Volleys Dink ~1mph P2
01:42 Drives Soft ~2mph P3
01:43 Drives Soft ~1mph P3
01:43 Volleys Dink ~0mph P3
01:46 Volleys Dink ~0mph P3
02:02 Volleys Dink ~1mph P4
02:06 Volleys Dink ~1mph P2
02:07 Drives Soft ~2mph P3
02:07 Volleys Soft ~1mph P2
02:12 Drives Soft ~1mph P1
02:14 Volleys Dink ~0mph P1
02:15 Serves Dink ~0mph P4
02:16 Volleys Dink ~1mph P3
02:23 Volleys Dink ~0mph P2
02:23 Volleys Dink ~1mph P2
02:25 Volleys Dink ~1mph P2
02:26 Dinks Dink ~1mph P1
02:38 Dinks Dink ~0mph P2
02:42 Volleys Dink ~1mph P1
02:42 Volleys Dink ~0mph P2
02:43 Volleys Dink ~0mph P1
02:44 Volleys Dink ~1mph P3
02:44 Volleys Dink ~0mph P2
02:45 Returns Dink ~1mph P2
02:45 Volleys Dink ~0mph P1
02:51 Dinks Dink ~1mph P2
02:51 Returns Dink ~1mph P3
02:55 Volleys Dink ~1mph P1
02:56 Volleys Dink ~0mph P1
02:57 Serves Dink ~0mph P4
02:58 Volleys Soft ~1mph P3
02:59 Volleys Dink ~0mph P1
03:22 Volleys Dink ~1mph P1
03:25 Volleys Dink ~1mph P2
03:34 Volleys Dink ~0mph P3
03:38 Volleys Dink ~1mph P2
03:45 Volleys Dink ~0mph P1
03:50 Dinks Dink ~0mph P3
03:56 Volleys Dink ~1mph P3
03:56 Returns Dink ~0mph P3
04:01 Volleys Dink ~0mph P1
04:02 Volleys Dink ~0mph P1
04:03 Serves Dink ~1mph P4
04:03 Serves Soft ~1mph P4
04:04 Volleys Soft ~1mph P3
04:37 Volleys Dink ~1mph P2
04:39 Volleys Soft ~1mph P2
04:40 Volleys Dink ~0mph P3
04:46 Volleys Soft ~1mph P2
04:47 Volleys Dink ~1mph P3
04:51 Volleys Dink ~1mph P3
04:54 Volleys Dink ~1mph P2
04:55 Volleys Dink ~1mph P3
04:56 Volleys Dink ~0mph P2
05:00 Serves Soft ~1mph P4
05:00 Volleys Dink ~1mph P2
05:08 Volleys Dink ~0mph P3
05:15 Volleys Dink ~1mph P1
05:18 Serves Dink ~1mph P4
05:19 Returns Dink ~1mph P4
05:19 Drives Soft ~1mph P2
05:27 Serves Dink ~1mph P4
05:30 Volleys Dink ~0mph P3
05:36 Serves Soft ~1mph P4
05:36 Volleys Dink ~1mph P2
05:42 Dinks Dink ~0mph P3
05:43 Volleys Dink ~0mph P3
05:46 Volleys Dink ~1mph P2
05:47 Volleys Dink ~0mph P2
05:53 Volleys Dink ~0mph P2
05:54 Volleys Soft ~1mph P1
05:55 Serves Soft ~1mph P4
05:56 Volleys Dink ~0mph P1
05:57 Volleys Dink ~1mph P3
05:58 Drives Soft ~1mph P2
05:59 Returns Dink ~1mph P2
05:59 Volleys Dink ~0mph P1
06:10 Drives Soft ~2mph P4
06:11 Returns Dink ~1mph P4
06:11 Volleys Dink ~0mph P4
06:12 Volleys Dink ~1mph P3
06:13 Volleys Dink ~1mph P3
06:13 Dinks Dink ~1mph P3
06:23 Returns Soft ~1mph P4
06:23 Serves Dink ~1mph P2
06:29 Volleys Dink ~0mph P1
06:31 Volleys Dink ~1mph P1
06:32 Volleys Dink ~1mph P3
06:37 Returns Soft ~1mph P4
06:38 Returns Dink ~1mph P2
06:41 Volleys Dink ~0mph P1
06:44 Volleys Dink ~0mph P1
06:44 Drives Soft ~1mph P4
06:45 Drives Soft ~1mph P3
06:49 Dinks Dink ~1mph P2
06:54 Volleys Dink ~1mph P3
06:54 Returns Dink ~1mph P4
06:55 Volleys Dink ~1mph P1
06:56 Returns Dink ~1mph P2
06:56 Drives Soft ~1mph P2
06:58 Drives Soft ~1mph P2
06:58 Returns Dink ~0mph P2
07:01 Volleys Dink ~0mph P4
07:02 Volleys Dink ~1mph P2
07:03 Volleys Dink ~1mph P2
07:03 Drives Soft ~1mph P2
07:11 Volleys Dink ~1mph P3
07:16 Dinks Dink ~0mph P2
07:17 Volleys Dink ~0mph P2
07:18 Returns Dink ~0mph P4
07:47 Volleys Dink ~0mph P1
07:55 Volleys Dink ~1mph P2
08:05 Serves Soft ~1mph P4
08:09 Dinks Dink ~1mph P3
08:29 Volleys Dink ~1mph P2
08:31 Returns Dink ~0mph P3
08:33 Returns Dink ~1mph P3
08:34 Volleys Dink ~1mph P2
08:35 Drives Soft ~1mph P3
08:36 Volleys Dink ~1mph P1
08:36 Dinks Dink ~0mph P3
08:57 Drives Soft ~2mph P4
08:59 Volleys Dink ~1mph P1
09:00 Volleys Dink ~0mph P1
09:02 Drives Soft ~2mph P4
09:08 Volleys Soft ~1mph P3
09:11 Volleys Soft ~1mph P1
09:12 Drives Soft ~1mph P1
09:15 Dinks Dink ~1mph P2
09:18 Volleys Dink ~0mph P3
09:35 Volleys Soft ~1mph P2
09:50 Dinks Dink ~0mph P2
09:51 Returns Dink ~0mph P2
09:52 Volleys Dink ~0mph P1
09:52 Drives Soft ~1mph P3
10:00 Volleys Dink ~1mph P3
10:02 Dinks Dink ~1mph P2
10:02 Volleys Dink ~0mph P2
10:03 Drives Soft ~1mph P3
10:04 Returns Dink ~0mph P4
10:05 Volleys Dink ~1mph P4
10:06 Volleys Soft ~1mph P3
10:07 Volleys Dink ~1mph P3
10:08 Volleys Dink ~1mph P3
10:11 Volleys Dink ~1mph P1
10:28 Drives Soft ~2mph P4
10:32 Volleys Dink ~0mph P1
10:33 Volleys Dink ~1mph P1
10:33 Volleys Dink ~1mph P1
10:34 Drives Soft ~2mph P4
10:35 Drives Soft ~1mph P2
10:39 Volleys Soft ~1mph P3
10:40 Returns Dink ~1mph P4
10:40 Drives Soft ~2mph P4
10:41 Drives Soft ~2mph P2
10:42 Volleys Soft ~1mph P1

📍 Player Court Positioning

Player 1
Player 1
P1
Center Court cx: 0.429
0.381
Lateral Range
827
Frames Tracked
Player 2
Player 2
P2
Center Court cx: 0.511
0.328
Lateral Range
556
Frames Tracked
Player 3
Player 3
P3
Center Court cx: 0.575
0.38
Lateral Range
863
Frames Tracked
Player 4
Player 4
P4
Center Court cx: 0.621
0.43
Lateral Range
194
Frames Tracked
Court View — Top Down (2D)
Far baseline
Net
Near baseline
P1
P1
P2
P2
P3
P3
P4
P4
Left sidelineRight sideline

🎬 Scene Analysis

Detected video segments based on player presence and activity level

👥
00:00 – 00:24 Active Play 24.1s • 3 player(s)
00:26 – 00:37 Transition 11.4s • 0 player(s)
👥
00:38 – 00:55 Active Play 17.1s • 2 player(s)
00:55 – 00:59 Transition 3.8s • 0 player(s)
👥
01:00 – 01:05 Active Play 5.7s • 2 player(s)
01:06 – 01:09 Transition 3.2s • 0 player(s)
👥
01:10 – 01:24 Active Play 14.6s • 2 player(s)
01:25 – 01:28 Transition 2.5s • 0 player(s)
👥
01:28 – 01:30 Active Play 1.9s • 2 player(s)
01:31 – 01:39 Transition 8.2s • 0 player(s)
👥
01:40 – 02:11 Active Play 31s • 2 player(s)
02:11 – 02:14 Transition 3.2s • 0 player(s)
👥
02:15 – 02:38 Active Play 22.8s • 2 player(s)
02:39 – 02:43 Transition 4.4s • 0 player(s)
👥
02:44 – 03:01 Active Play 17.1s • 3 player(s)
03:01 – 03:06 Transition 5s • 0 player(s)
👥
03:07 – 03:12 Active Play 5s • 2 player(s)
03:13 – 03:22 Transition 9.5s • 0 player(s)
👥
03:23 – 03:24 Active Play 1.3s • 2 player(s)
03:25 – 03:31 Transition 6.3s • 0 player(s)
👥
03:32 – 03:48 Active Play 16.4s • 2 player(s)
03:49 – 03:53 Transition 3.8s • 0 player(s)
👥
03:53 – 03:56 Active Play 3.2s • 2 player(s)
03:57 – 04:02 Transition 5.1s • 0 player(s)
👥
04:03 – 04:51 Active Play 48.1s • 2 player(s)
04:52 – 04:55 Transition 3.1s • 0 player(s)
👥
04:55 – 04:57 Active Play 1.2s • 2 player(s)
04:57 – 04:59 Transition 1.9s • 0 player(s)
👥
05:00 – 05:14 Active Play 13.9s • 2 player(s)
05:14 – 05:18 Transition 3.8s • 0 player(s)
👥
05:19 – 05:24 Active Play 5.7s • 2 player(s)
05:25 – 05:31 Transition 5.7s • 0 player(s)
👥
05:31 – 05:33 Active Play 1.2s • 2 player(s)
05:33 – 05:36 Transition 2.5s • 0 player(s)
👥
05:36 – 05:53 Active Play 16.5s • 2 player(s)
05:54 – 05:57 Transition 3.2s • 0 player(s)
👥
05:57 – 06:01 Active Play 3.8s • 2 player(s)
06:02 – 06:18 Transition 16.4s • 0 player(s)
👥
06:19 – 06:23 Active Play 4.4s • 2 player(s)
06:24 – 06:33 Transition 8.9s • 0 player(s)
👥
06:33 – 06:38 Active Play 4.5s • 2 player(s)
06:39 – 06:44 Transition 5.1s • 0 player(s)
👥
06:46 – 10:45 Active Play 239.4s • 3 player(s)
10:46 – 10:47 Transition 1.9s • 0 player(s)
👥
10:48 – 11:14 Active Play 26s • 2 player(s)
11:15 – 11:52 Transition 37.4s • 0 player(s)
👥
11:53 – 11:55 Active Play 2.6s • 2 player(s)
11:57 – 12:00 Transition 2.5s • 0 player(s)
👥
12:02 – 12:21 Active Play 19s • 2 player(s)
12:22 – 12:25 Transition 3.1s • 0 player(s)
👥
12:26 – 12:34 Active Play 8.2s • 2 player(s)
12:34 – 12:36 Transition 1.3s • 0 player(s)
👥
12:36 – 12:57 Active Play 20.9s • 2 player(s)
12:58 – 13:01 Transition 3.1s • 0 player(s)
👥
13:02 – 13:24 Active Play 22.1s • 3 player(s)
13:25 – 13:26 Transition 1.2s • 0 player(s)
👥
13:26 – 13:39 Active Play 12.6s • 2 player(s)
13:40 – 13:45 Transition 5.7s • 0 player(s)
👥
13:46 – 14:09 Active Play 22.8s • 2 player(s)
14:09 – 14:17 Transition 7.6s • 0 player(s)
👥
14:18 – 14:23 Active Play 5.7s • 2 player(s)
14:24 – 14:27 Transition 3.2s • 0 player(s)
👥
14:28 – 14:46 Active Play 18.4s • 2 player(s)
14:47 – 14:49 Transition 2.5s • 0 player(s)
👥
14:50 – 15:05 Active Play 15.2s • 2 player(s)
15:06 – 15:12 Transition 5.7s • 0 player(s)
👥
15:12 – 15:15 Active Play 3.2s • 2 player(s)
15:16 – 15:25 Transition 9.5s • 0 player(s)
👥
15:26 – 15:39 Active Play 12.6s • 2 player(s)
15:39 – 15:44 Transition 5s • 0 player(s)
👥
15:45 – 15:50 Active Play 5s • 2 player(s)
15:51 – 15:53 Transition 1.9s • 0 player(s)
👥
15:55 – 16:59 Active Play 63.9s • 3 player(s)
16:59 – 17:07 Transition 8.2s • 0 player(s)
👥
17:08 – 17:19 Active Play 10.8s • 2 player(s)
17:19 – 17:25 Transition 5.1s • 0 player(s)
👥
17:25 – 17:33 Active Play 8.3s • 2 player(s)
17:34 – 17:42 Transition 7.6s • 0 player(s)
👥
17:42 – 17:49 Active Play 7s • 2 player(s)
17:50 – 18:04 Transition 14s • 0 player(s)
👥
18:04 – 18:09 Active Play 4.4s • 2 player(s)
18:10 – 18:16 Transition 6.9s • 0 player(s)
👥
18:17 – 18:36 Active Play 19s • 2 player(s)
18:37 – 19:25 Transition 48.1s • 0 player(s)
Active play time: 806.6s (69%)
Segments detected: 84

👥 Players Detected

Player 1
Player 1
Team A  86% conf.
Player 2
Player 2
Team A  67% conf.
Player 3
Player 3
Team B  86% conf.
Player 4
Player 4
Team B  89% conf.

🏓 Shot Analysis

289Total Shots
0.093Max Velocity
0Burst Shots
Dinks
27
Drops
2
Drives
39
Serves
24
Returns
36
Volleys
161
Wrist speed analysis (est.): Avg ~1 mph · Peak ~3 mph · 0 burst shots (wrist speed, not ball speed — approx.)

🎯 3D Shot Viewer

Interactive 3D court visualization — drag to rotate · scroll to zoom · click a preset to snap to a view angle.

Legend
Shot Trajectories
Dinks
Drives
Serves
Returns
Volleys
Drops
Court Markers
Ball Positions — Each dot = one detected ball location across the match
Player 1 / P3 — Average court position (cylinder)
Player 2 / P4 — Average court position (cylinder)
Net — Centre divider at 34″ height
Kitchen Line — No-volley zone boundary (7 ft from net)
🖱 Drag to rotate · Scroll to zoom

📊 Match Timeline

0:00 9:42 19:25
Active Rally Highlight Serve Dink Drive Return Volley Drop — click to seek

⚡ Auto Highlights

Highlight 00:25
Rally #2
22 shots · 58 active frames
Highlight 05:52
Rally #12
14 shots · 43 active frames
Highlight 16:29
Rally #39
12 shots · 65 active frames
Highlight 17:18
Rally #40
10 shots · 44 active frames
Highlight 06:54
Rally #15
10 shots · 16 active frames
Highlight 10:38
Rally #24
9 shots · 18 active frames
Highlight 10:26
Rally #23
6 shots · 18 active frames
Highlight 06:37
Rally #14
6 shots · 16 active frames
Highlight 08:27
Rally #17
7 shots · 17 active frames
Highlight 13:55
Rally #32
6 shots · 19 active frames
Click a card to jump to that moment in the video above ↑

🗺 Performance Heatmaps

Movement Density
Rendering…
Low
High activity
Click a player chip to isolate · hover any spot for stats
Tactical Insights
56% Volleys was the most used shot — 56% of all shot events
10% of shots were kitchen shots (dinks + drops) — room to improve kitchen game
58% Active play rate — video time spent in active rallies
6/6 Shot variety — 6 different shot types detected — excellent tactical range
3.3/min Rally frequency — 3.3 rallies per minute of video
0% of detected players showed good posture (0 of 4)

⚡ Ball Speed Analytics

Peak Speed
37.3mph
60 km/h
Average Speed
20.6mph
33.1 km/h
Velocity Samples
992
measured ball moves
Scale Source
🎯 Court-calibrated
Using auto-detected court geometry — highest accuracy.

🏠 Court Zone Dwell Time

Player 1
far-side
85.1%
14.9%
Kitchen 85.1% Transition 0% Baseline 14.9%
🏆 Strong kitchen presence
Player 2
near-side
85.9%
10.5%
Kitchen 85.9% Transition 10.5% Baseline 3.6%
🏆 Strong kitchen presence
Player 3
near-side
92.1%
Kitchen 92.1% Transition 7.1% Baseline 0.8%
🏆 Strong kitchen presence
Player 4
near-side
27.8%
41.2%
30.9%
Kitchen 27.8% Transition 41.2% Baseline 30.9%
✅ Healthy kitchen engagement

🎾 Rally Analytics

65
Total Rallies
3.7
Avg Shots / Rally
2.3s
Avg Duration
9
Longest (shots)
8.87s
Longest (time)
# Start Duration Shots Players
1 00:25 3.8s 5 P1P2
2 00:38 8.87s 9 P1P2P3
3 00:50 5.07s 7 P2P3
4 01:00 1.26s 3 P1P4
5 01:09 1.9s 4 P2
6 01:19 5.07s 8 P1P2
7 01:28 0.64s 2 P2P4
8 01:31 1.9s 2 P2
9 01:39 4.44s 6 P2P3
10 02:06 1.26s 3 P2P3
11 02:14 1.27s 3 P1P3P4
12 02:23 3.17s 4 P1P2
13 02:42 3.8s 7 P1P2P3
14 02:51 0.63s 2 P2P3
15 02:55 3.8s 5 P1P3P4
16 03:56 0.64s 2 P3
17 04:01 2.54s 5 P1P3P4
18 04:39 0.64s 2 P2P3
19 04:46 0.63s 2 P2P3
20 04:54 1.9s 3 P2P3
21 05:00 0.63s 2 P2P4
22 05:18 1.26s 3 P2P4
23 05:36 0.63s 2 P2P4
24 05:42 0.64s 2 P3
25 05:46 0.64s 2 P2
26 05:53 6.33s 8 P1P2P3P4
27 06:10 3.17s 6 P3P4
28 06:23 0.63s 2 P2P4
29 06:29 3.17s 3 P1P3
30 06:37 0.64s 2 P2P4
31 06:44 1.26s 3 P1P3P4
32 06:54 4.43s 7 P1P2P3P4
33 07:01 2.53s 4 P2P4
34 07:16 2.53s 3 P2P4
35 08:29 7.6s 7 P1P2P3
36 08:57 4.43s 4 P1P4
37 09:11 0.64s 2 P1
38 09:50 1.9s 4 P1P2P3
39 10:00 7.6s 9 P2P3P4
40 10:32 2.53s 5 P1P2P4
41 10:39 3.8s 7 P1P2P3P4
42 10:47 0.63s 2 P2P4
43 11:43 2.54s 3 P1
44 11:59 1.9s 3 P1P4
45 12:18 0.63s 2 P2P4
46 12:26 0.63s 2 P1P4
47 12:31 1.9s 2 P1P2
48 12:45 1.26s 3 P2P3
49 13:12 5.7s 9 P1P2P3P4
50 13:26 0.64s 2 P2P4

⏱ Reaction Time Analysis

Player 1
28 samples
1063ms
Avg response
630
fastest
640
median
3160
slowest
✅ Strong reaction
Player 2
56 samples
1369ms
Avg response
630
fastest
950
median
3170
slowest
➖ Average reaction
Player 3
37 samples
1283ms
Avg response
630
fastest
640
median
3170
slowest
➖ Average reaction
Player 4
26 samples
1459ms
Avg response
630
fastest
1260
median
3170
slowest
➖ Average reaction

🤚 Swing Distribution

Player 1
61 swings analyzed
90.2%
9.8%
Forehand 55 (90.2%) Backhand 6 (9.8%) Overhead 0 (0%) Dink/Low 0 (0%)
🤚 Heavy forehand bias — train backhand
Player 2
56 swings analyzed
76.8%
14.3%
8.9%
Forehand 43 (76.8%) Backhand 8 (14.3%) Overhead 0 (0%) Dink/Low 5 (8.9%)
🤚 Heavy forehand bias — train backhand
Player 3
28 swings analyzed
71.4%
28.6%
Forehand 20 (71.4%) Backhand 8 (28.6%) Overhead 0 (0%) Dink/Low 0 (0%)
🤚 Heavy forehand bias — train backhand
Player 4
18 swings analyzed
88.9%
11.1%
Forehand 16 (88.9%) Backhand 2 (11.1%) Overhead 0 (0%) Dink/Low 0 (0%)
🤚 Heavy forehand bias — train backhand

🎯 Error Analysis

In Bounds
197
on the court
Out of Bounds
53
unforced errors
Error Rate
21.2%
of total bounces
Tracked Bounces
250
across the match
⚠ Moderate errors — focus on shot placement drills
Where errors landed
Edge
21 errors
Beyond Near Baseline
8 errors
Right Sideline
1 errors
🕵️ Opponent Scouting Report 4 players
Per-Player Tactical Summary
P1
Player 1
Center Court
🎯Dominant ShotForehand
↔️Lateral TendencyCenter court
↕️Depth TendencyMid-court
⚠️
Weakness to Exploit
Weak backhand wing — pressure their backhand side
"Player 1 owned the kitchen (85.9% NVZ dwell) from center court — strong net pressure. Swing mix across 56 shots: forehand 76.8%, backhand 14.3%, overhead 0%, dink 8.9%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1369ms (fastest 630ms over 56 shots). ➖ Average reaction"
P2
Player 2
Center Court
🎯Dominant ShotForehand
↔️Lateral TendencyCenter court
↕️Depth TendencyMid-court
⚠️
Weakness to Exploit
Weak backhand wing — pressure their backhand side
"Player 2 owned the kitchen (85.1% NVZ dwell) from center court — strong net pressure. Swing mix across 61 shots: forehand 90.2%, backhand 9.8%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1063ms (fastest 630ms over 28 shots). ✅ Strong reaction"
P3
Player 3
Center Court
🎯Dominant ShotForehand
↔️Lateral TendencyCenter court
↕️Depth TendencyMid-court
⚠️
Weakness to Exploit
Weak backhand wing — pressure their backhand side
"Player 3 owned the kitchen (92.1% NVZ dwell) from center court — strong net pressure. Swing mix across 28 shots: forehand 71.4%, backhand 28.6%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Reaction: avg 1283ms (fastest 630ms over 37 shots). ➖ Average reaction"
P4
Player 4
Center Court
🎯Dominant ShotForehand
↔️Lateral TendencyStays right
↕️Depth TendencyMid-court
⚠️
Weakness to Exploit
Weak backhand wing — pressure their backhand side
"Player 4 (Center Court): balanced court positioning — kitchen 27.8%, baseline 30.9%. Swing mix across 18 shots: forehand 88.9%, backhand 11.1%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1459ms (fastest 630ms over 26 shots). ➖ Average reaction"
Team Patterns
Team A P1 & P2 & P3
🏟️Sits back at baseline
Team B P4
🏟️Sits back at baseline
Tactical Exploit Tip
Opponents rarely dink — force them into kitchen exchanges to disrupt their rhythm.

💡 AI Coach Insight

Player 1

Player 1 owned the kitchen (85.9% NVZ dwell) from center court — strong net pressure. Swing mix across 56 shots: forehand 76.8%, backhand 14.3%, overhead 0%, dink 8.9%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1369ms (fastest 630ms over 56 shots). ➖ Average reaction

Player 2

Player 2 owned the kitchen (85.1% NVZ dwell) from center court — strong net pressure. Swing mix across 61 shots: forehand 90.2%, backhand 9.8%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1063ms (fastest 630ms over 28 shots). ✅ Strong reaction

Player 3

Player 3 owned the kitchen (92.1% NVZ dwell) from center court — strong net pressure. Swing mix across 28 shots: forehand 71.4%, backhand 28.6%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Reaction: avg 1283ms (fastest 630ms over 37 shots). ➖ Average reaction

Player 4

Player 4 (Center Court): balanced court positioning — kitchen 27.8%, baseline 30.9%. Swing mix across 18 shots: forehand 88.9%, backhand 11.1%, overhead 0%, dink 0%. 🤚 Heavy forehand bias — train backhand Heavy forehand reliance — opponents will target the backhand wing. Drill cross-court backhand dinks. Reaction: avg 1459ms (fastest 630ms over 26 shots). ➖ Average reaction

Whole-match summary

Moderate-intensity session (58% active play, 4 player(s)). Increasing rally tempo will build match conditioning. Shot profile: 56% volleys. Dinks: 27 · Drives: 39 · Drops: 2 · Volleys: 161. Consistent pace (avg ≈1 mph, max ≈3 mph est.). Developing a harder drive on short balls would create more winning opportunities. 65 rallies detected — longest 266 frames, averaging ~4.4 shots/rally. Long rallies indicate strong consistency — focus on speed-up opportunities to close out points. Biomechanics: knees nearly straight 47.4% of the time. Bend knees to 130–160° for better balance and explosive lateral movement. Top moment: "Rally #1" at 1s. Keep logging your sessions to build a long-term performance profile.

📊 Statistics

58% Active Play Time
6.0 Avg Motion Score
266 Longest Rally (frames)
1.3 Avg Players / Frame
Want this analysis for your own matches?

Upload a video or record live — CV 360's AI breaks down every shot, rally, and movement in minutes.

Get Started Free →