End a shot's topspin dip at the bounce, so a kicking ball kicks up
A shot's extra gravity is its dive in flight, but it was carried through the bounce: heavy topspin skidded away low and Oliver met nearly every ball 0-25 cm off the grass. After its bounce a ball now falls under plain gravity (tennis modes only), and every planner that rolls a bounce forward switches at the same moment. The higher bounces pushed the auto-run into volleys, so it now takes a kicking ball at the top of its bounce, up to chest height. Median contact rises from 0.42 to 1.13 m at the bottom of the ladder. v369. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fe090f2fba
commit
e25047ed0c
5 files changed
+40
-8
No files matched your search
+17
@@ -5485,6 +5485,23 @@ there when the window opened) or `early 40ms`. That was the question his first l
|
||||
kicks UP. Resetting `ball.g` at the bounce would fix the picture but moves every timing in the
|
||||
rally (all four planners), so it is a decision to put to him.
|
||||
|
||||
### The dip ends at the bounce: topspin kicks UP (2026-10-14, v369, Oliver: "ja, bau den topspin-fix")
|
||||
A shot's extra gravity (quality topspin `spinFactor`, the serve's `serveSpin`) is its DIVE IN FLIGHT,
|
||||
and it used to be carried THROUGH the bounce: a "heavy topspin" ball skidded away low and nearly every
|
||||
contact in his logs was 0-25 cm off the grass. `gAfter()` hands a ball plain gravity at its bounce
|
||||
(tennis modes; gore's balls keep theirs). The kick itself was already `bY`/`bXZ`'s spin factor. Every
|
||||
planner that rolls a bounce forward switches at the same moment (physics, `intercept`, `bounceContact`,
|
||||
`ringCue`, `matchOutOfReachFlight`); one left on the old gravity would predict a ball that is not there.
|
||||
- **Side effect, caught by the probe:** higher bounces fell outside the auto-run's 0.45-1.3 m comfort
|
||||
band, so it found no point behind the line and ran forward to VOLLEY (38-42% volleys). The player
|
||||
now takes a kicking bounce at its top, up to `rallyTop` 1.7 m. Volleys are back to 8-18%.
|
||||
- **Measured** (probe, median player contact): rung 1 0.42 -> 1.13 m, rung 6 0.53 m, and against the
|
||||
big hitter still 0.35 m. The cause there is no longer the bounce. A contact fires on the FIRST frame
|
||||
the ball is in reach, so against hard pace it is met as it enters reach, just off the bounce. Waist
|
||||
high contact against pace would need the contact model itself changed: contact at the closest
|
||||
approach, quality by distance from the sweet spot. That is a separate decision. The timed ring still
|
||||
returns 92-98%. 162 tests, nine seeds.
|
||||
|
||||
# OPEN — leftovers, in rough priority order
|
||||
|
||||
Nothing here is broken; these are known gaps and unverified risks.
|
||||
|
||||
Reference in new issue
Block a user