9:41
TRINITY
Two modules. One AI coach. Trinity reads your racket and your body, then tells you what to practice next.
Get started
Skip for now
{{ pairTitle }}
{{ pairSub }}
{{ pairBtnLabel }}
You're set,
{{ playerName }}.
Dampener on the racket, wristband on your wrist. Play your normal game — Trinity listens in the background.
Racket dampenerpaired · 82%
Wristbandpaired · 64%
Open Trinity
Today
FOCUS
Earlier contact on the wide forehand. You're two sessions in — keep it going, {{ playerName }}.
STRINGS
Impact pitch has been falling for 11 days.
Usually means tension is gone. Worth a restring.
LAST SESSION
FOREHAND
Flat
BACKHAND
Topspin
QUALITY
5.9
STROKES
128
{{ m.label }}
View stroke analysis →
STROKE QUALITY · LAST 7 SESSIONS+0.9
{{ b.label }}
Stroke analysis
Session {{ sr.num }}
{{ sr.sub }}
Stroke quality{{ sessQ }}
{{ sessFh }}
FOREHANDS
{{ sessBh }}
BACKHANDS
{{ sessSv }}
SERVES
Contact across the string bed
FHBH
{{ sessGroup }}, {{ sessMm }} above the node.
{{ sessNote }}
more contacts fewer off the node
80% land heresweet spot
Where your swing stops repeating
FHBH
Traces fan out 140 ms before contact — it's the preparation, not the wrist.
Each line is one forehand's racket speed, aligned on contact. A tight bundle is a repeatable swing.
−140 ms −400 ms contact
Face through the swing
FHBH
The ribbon closes over the ball — a healthy topspin shape.
Racket face orientation swept along your swing path. Slice rolls open, flat stays flat, topspin closes.
{{ rr.label }}
Kinetic chain
FHBH
Wrist peaks 42 ms before the racket — well sequenced.
Reversed order would mean you're pulling with the arm.
42 ms
wrist racket
Stroke fingerprints
FHBH
45 of 60 strokes land within ±4° — a tight core with a slight rightward drift.
Swing directions from the wrist, binned by angle. Brighter wedges are where your strokes concentrate.
{{ a.label }} WRIST
8–10 strokes 4–7 1–3 outliers
60 strokes · 2° bins · angles shown at 3×
Face angle drift
FHBH
Grouping held for 80 strokes, then loosened. Spread went from 1.5° to 8.7° over the last 40.
Face angle at contact, open is up. The band is where 80% of strokes land. The turn comes about 35 minutes in.
stroke 80 stroke 20 stroke 120
{{ s.name }}{{ s.q }}
{{ s.note }}
What are we working on today?
FOR YOUR FOCUS
{{ f.title }}
{{ f.why }}
Begin session
{{ clock }}
CAPTURING IN BACKGROUND
{{ shots }}
STROKES
{{ liveHr }}
BPM
{{ liveQ }}
QUALITY
Phone away, eyes on the ball. Trinity's got the numbers.
End practice
SESSION 32 · {{ clock }} MIN
That's real progress, {{ playerName }}.
{{ shots }}
STROKES
7.1
AVG QUALITY
81
PEAK MPH
{{ sumFh }}
FOREHANDS
{{ sumBh }}
BACKHANDS
{{ sumSv }}
SERVES
{{ b.label }}{{ b.val }}
WHAT HELD YOU BACK
Contact still drifts late when you're pulled wide — arm load spikes just before impact.
IMPACT −40 MSARM LOAD HIGH
PRACTICE NEXT
Split-step to wide feed
10 min · footwork · targets impact timing
{{ queueLabel }}
Done
Drills
{{ c.label }}
FOR YOUR FOCUS
{{ d.name }}
{{ d.meta }}
← Drills
{{ dName }}
{{ dMeta }}
{{ dFitLabel }}
{{ dDesc }}
{{ s.n }}{{ s.t }}
Add to next session
Trends
Three weeks of steady work, {{ playerName }} — your wide forehand is catching up to your best.
STROKE QUALITY · ALL SESSIONS+1.6
session 1 · May31 · today
QUALITY BY STROKE TYPE
{{ t.label }}{{ t.n }}
CONTACT TIMING · ALL SESSIONS−22 ms
How late you meet the ball. Lower is earlier contact.
May today +40 ms on time
GROUPING ENDURANCE85 strokes
How many strokes your grouping holds before it loosens — up from about 40 in May.
Maytoday
SESSIONS BY MONTH
{{ m.n }}
{{ m.label }}
String tension
impact pitch · 6 weeks
Your strings died 11 days ago — restring before Saturday.
The dampener hears the string bed: as tension drops, the impact pitch falls.
−11 days
FOCUS HISTORY
{{ h.name }}{{ h.status }}
Devices
Racket dampener
{{ dampStatus }}
{{ dampPctLabel }}
{{ dockLabel }}
Wristband
on wrist · doubles as charging dock
64% · about 3 sessions left
LIGHT BAR GUIDE
Ready — soft pulse, paired with wristband & app
Battery — remaining power before play
Sync — data transfer & charging on the dock
{{ t.label }}
PLAY