Tennis Forehand Analysis App Development

Job ID: 39893591

Budget: $250 – $750 USD

Platform
iOS (iPhone only for now)
Compatible with iPhone cameras (minimum 720p, 30fps)
Minimum: 1080p @ 60 fps preferred (30 fps acceptable with lower accuracy).
We need a simple front and a backend (which can run as service or api).
________________________________________
User Flow
1. User Signup/Onboarding
o As user opens the app, user will enter their name and email address and click on next button.
o After they click next user will upload a video of players forehand recorded from the side.
Side
Note: If needed we can ask user to upload videos of forehand from back and front. To be determined. If all parameters we need can be calculated from side then side video is enough.
o Static text: we will add guidelines on ho to record video
2. After user uploads video they will net and we will take them to the payment page (we can use stripe ). Enter their credit card number and other details and click on Process Order button.
3. Confirmation & Processing
o After user clicks Process order:
Show Analyzing your forehand this will take ~15 mins. You will get mail from .Please check your inbox in 10-15 minutes.
Provide email ETA for report
o Front end App should call backend API with the uploaded video or uploaded videos.
4. Email Delivery
o User receives an email with:
PDF report (with images and metrics)
Summary of strengths + areas to improve
Optional improvement drills or coach tipscan be taken from youtube


Backend & AI/ML Flow

Receive 1-3 videos from user (Preferable 1 (side video) but need to confirm with developer)
o Store them securely (e.g., S3 or google or azure)
o Trigger analysis
2. Run Frame-by-Frame Analysis: developer can decide what models to use
o Use OpenCV to extract frames
o Use YOLOv8 to detect:
Ball
Racket (custom model)
Player (or body bounding box)
o Use MediaPipe to extract:
Knees
Hips
Shoulders
Arms
And other positions
3. Calculate Key Metrics:
o Ball Speed (from ball tracking )
o Spin Estimate (from ball trajectory & curve)
o Unit turn good or not
o Racket Drop (vertical drop vs waist or hip)
o Knee Bend Depth (measured in angles or relative position)
o Make sure eyes are looking at ball at point of contact/
o Determine racket angle at point of contact
o
4. Generate Report (PDF or HTML)
o Include:
User name, date, video screenshots
Ball speed
Spin type (how much spin they put)
Racket drop rating and how much racket dropped
Knee bend score
Point of contact
Racket angle at point of contact
Head position at point of contact
5. Email Report
o Use a templated email
o Send within 15 minutes of video upload
o Attach or link to report
________________________________________
Security & Privacy
Use secure storage for user videos
Auto-delete videos after report is emailed (optional)
________________________________________
AI Model Training Notes (For ML Developer)
You will provide:
o Training videos
o Guidelines on forehand mechanics
o Details like what is point of contact, racket drop etc
Models:
o YOLOv8 for object detection (ball, racket, player)
o Custom-trained YOLO for racket detection (if needed)
o MediaPipe for keypoints
o OpenCV for frame handling, speed, angle calcs
________________________________________


Sample Email to User: this is just template we will work on it later.
Hi [Name],
Thanks for using [App Name]!
Your forehand analysis report is ready.
Ball speed: 52.3 mph (max), 47.8 mph (avg)
Spin type: Topspin
Racket drop: Good depth
Knee bend: Slightly shallow more loading can help
Point of contact details
Head position at point of contact
Racket angle at point of contact/
Areas to Improve: example based on above points I will give login to write areas of improvement. Example:
Load knees deeper
Delay contact point slightly
o
For training models to understand tennis racket, or player or ball , the development team will get images from google or other websites and train the models.

CALIBRATION:
Calibration is going to be the key. Converting pixels to meters to determine speed is going to be key

NOTES:
What is a good unit turn?
When a player sees a ball coming to their right side (meaning on their forehand) the first step they do is call unit turn. See the picture below for unit turn. The player has rotated upper body. After a good unit turn, as u can see head and eyes are still looking at the ball but upper body has rotated. Both the hands are on racket with left hand on the throat of the racket. .The racket head (top of racket) is lagging the wrist (meaning racket is at an angle and racket head is lagging the wrist. Email me or call me if u need to understand It more.
https://www.youtube.com/shorts/4brVezoEpfc


We need to detect following:
o Tell user if Head is looking at the ball
o Upper body is pointing sideways
o Left hand is on throat of racket
o Racket is at an angle so head of racket lags wrist.
In tennis, the unit turn is a fundamental part of the forehand and backhand preparation phase. It refers to the coordinated rotation of the upper body (shoulders and hips) as one unit to prepare for the stroke.
What Exactly Is Unit Turn?
When a player sees the ball coming, they rotate their shoulders and hips together (like a single unit) without swinging the arm yet.
This coil stores energy for the upcoming swing and helps with timing, balance, and power.
Key Features of a Good Unit Turn:
Element Description
Shoulders & Hips Rotate Together Both rotate sideways, often 90 to the net (closed stance).
Racket Stays Quiet No early backswingracket head remains up and hands close to the body.
Eyes Stay on Ball Head remains still during the turn.

What is a good racket drop?
A good racket drop on the forehand is essential for generating power, topspin, and timingespecially at intermediate to advanced levels. Here's what defines a good forehand racket drop:
After the unit turn is done, and when player is ready to hit shot, The racket head should dip well below the ball just before contact. This enables an upward brushing motion, critical for topspin.



What we need to determine
In a forehand a player will first do unit turn. After that player will take racket back and drop the racket. Then they will move it forward towards the ball to hit the ball.
o When they drop the racket and before they start moving it forward we need to determine how low is racket compared to the point of contact. The lower it is, better brushing it will be which would mean more spin.
o Also we need to determine how much are knees bend (angle) when the racket has dropped fully and before it start moving towards the ball.

What is contact point?
In tennis, the point of contact refers to the moment and position where the racket meets the ball during a stroke. It is a critical aspect of every shot because it greatly influences the ball's direction, spin, speed, and consistency.
Key Aspects of Point of Contact
1. Location Relative to the Body
Forehand: The ideal contact point is slightly in front of the front hip (for a righty, just ahead of the left hip).
Should be around waist to shoulder height, depending on the type of shot and incoming ball height.
The ball should be hit at arm's length to allow for full extension without crowding.
Racket angle at point of contact determines spin


What we need to determine:
We need to determine if point of contact is in front of front hip or not
We need to determine if point of contact is between waist and shoulder or not.
We need to determine racket angle at point of contact.
We need to tell user if their head and eyes are pointed towards ball at the point of contact.


Please note
o A player recognizes the ball is coming to their forehand
o The first step they do is unit turn
o Then they move their racket back and drop it. At this time their knees are bended and they are low.
o Then they swing towards the ball and they rise up (meaning knee bend angle decreases)
Video to se how a good forehand is:
https://www.youtube.com/watch?v=Nw_2I2ksX3U&t=54s