Inspiration

We built Courtside to handle the age-old discussions between friends of who is the better pick-up basketball player.

How We Built It

  • Swift Mobile App: A simple iOS app that allows users to record their games. The app includes pages including home page, login authentication, real time game recording, game film uploading, and stats page to review player performance.
  • OpenCV & YOLOv8 Object Detection: We trained two machine learning models: one to detect players, the ball, and the hoop rim; another to identify individual players using pre-recorded reference footage.
  • Backend Processing with FastAPI & Firebase: We build a FastAPI backend to process camera frames, detect key game events (passes, shots, rebounds), and calculate player stats. Firebase handles data storage, keeping track of stats for each player.
  • AI-Powered Commentary: To enhance the game experience, we used ElevenLabs API and Gemini API to generate real-time AI-driven play-by-play commentary based on detected game actions.

Challenges We Faced

  • Learning Swift: None of our team members had prior experience with Swift. We initially tried React Native, but encountered numerous dependency issues, and pivoted to Swift. After troubleshooting and utilizing online resources, we successfully built a fully functional mobile Swift app.
  • Optimizing AI Models & Data Storage: Balancing accuracy and performance for real-time detection was a challenge. We synchronized and optimized data between our two models to keep latency low.

Courtside brings AI-powered analytics to pickup basketball, providing real-time tracking, automated stats, and play-by-play commentary—so now, when your friends debate who played better, you’ll have the data to prove it.

Built With

Share this project:

Updates