Inspiration

Most sports AI tools stop at analysis. They show stats, heatmaps, and shot placement, but during a match, players don’t need more data. They need answers.

What should I fix right now? Where should I hit next? How do I beat this opponent?

As players ourselves, we realized: The gap is not better analysis, it’s better decisions. So we set out to build something fundamentally different: An AI that doesn’t just analyze your game, but coaches you in real time.

What it does

TennisMind is an autonomous coaching agent. It transforms tennis from: passive analysis to active decision-making Instead of dashboards, it gives executable actions:

“Push deep crosscourt to opponent backhand” “Stop attacking middle balls” “Recover faster after contact”

Core Agent Loop

Observe → Reason → Decide → Coach → Improve Key Capabilities 🧠 Decision-Making AI Not just what happened, but what to do next 🎤 Real-Time Voice Coach Powered by Vapi → gives live tactical feedback like a real coach 🧠 Persistent Memory Powered by Redis → remembers weaknesses, patterns, and improvement over time 🎯 Opponent Intelligence Using Browserbase → generates pre-match strategy 🏋️ AI Training Generation → creates adaptive drills (virtual ball machine)

How we built it

We combined LLM reasoning, memory systems, and real-time interaction to create a full agent loop. Tech Stack Meta LLaMA → reasoning + tactical decisions Redis → short-term + long-term memory Vapi → real-time voice coaching Browserbase → opponent data scraping System Flow Input (swing / scenario) LLM analyzes and reasons Agent generates decision Voice coach delivers feedback Redis stores memory Next interaction adapts

Challenges we ran into

  1. Turning analysis into decisions LLMs tend to produce vague explanations. We had to design prompts that generate clear, tactical, actionable outputs.
  2. Real-time experience Voice feedback must feel: fast natural helpful We optimized for low-latency + concise coaching phrases.
  3. Memory design We needed: fast access (real-time coaching) persistent tracking (long-term improvement) We used Redis to unify both short-term and long-term memory.
  4. Building a “real product” in hours We focused on: Product illusion + working agent loop So it feels complete — and actually works.

Accomplishments that we're proud of

✅ Built a fully autonomous coaching loop end-to-end ✅ Delivered real-time voice coaching (wow moment) ✅ Implemented persistent player memory ✅ Generated actionable tactical decisions (not metrics) ✅ Extended to opponent-aware strategy What we learned The biggest shift in AI is from analysis → action Memory is what turns a model into an agent Users don’t want insights — they want decisions Real-time interaction dramatically increases perceived value What's next for TennisMind

We plan to expand into a full AI training system:

🎥 Real-time camera-based coaching 🤖 AI opponent simulation 🧠 Advanced player modeling 📈 Fully automated training plans

Final Thought

Most tools help you understand your last shot. We help you win your next one.

Built With

Share this project:

Updates

posted an update

We built an AI tennis analysis agent. The frontend sends a user_id and a short video URL, then our backend downloads the video, uses FFmpeg to extract key frames, and sends those frames to a vision model for tennis-specific analysis.

The system identifies things like stroke type, movement phase, footwork, strengths, issues, and coaching tips. Then it converts that structured analysis into a natural language text response that the frontend can directly use for voice playback.

We also connect the result with user context and memory, so the feedback becomes more personalized over time instead of treating every video as a one-off clip.

Log in or sign up for Devpost to join the conversation.