TT Lab
Blog

한국어 English 日本語 中文

Get started
Blog

Blog

Reading 3D Trajectories and Spin from a Single Camera: TT3D, Uplifting Table Tennis, and TT4D — Physics-based vs. Learning-based Models

Status: Draft (2026-10-13). Paper figures were verified with the original texts and their conditions (Uplifting's conference confirmed via CVF open access: WACV 2026, pp. 7440–7449 — 2026-10-15). The hands-on experiment used a numpy example on a laptop CPU (code/11_spin_physics.py, taking around 30 seconds). We have never run this heuristic method on our own videos (unmeasured). Part of the series "Reading Vision Models 2," episode 11. Table corners and homography are covered in TT Score Model Anatomy episode 3, and 3D extremum rule planning in episode 5.

Table of Contents

1. Intuition: The Missing Dimension in 2D

Cameras flatten the 3D world onto a 2D screen. In the process, depthis lost. A single point on the screen can be anywhere along the line of sight extending from the camera. The 2D position of a ball alone does not reveal whether it is 2 meters or 4 meters away from the camera.

However, table tennis offers many clues.

The final clue even reveals the spin. A ball with topspin drops faster, while underspin causes it to float further. By observing the curvature of the trajectory, the spin can be retrocalculated.

2D 점들 → 3D 궤적과 회전: 두 길 입력: 공의 2D 위치 열 + 탁구대 모서리 ① 물리 모델로 맞추기 TT3D 모서리 → 카메라 자세·초점 바운드 = 시선 ∩ 탁구대 면 속도·회전 최적화 비행: 중력 + 공기 저항 + 마그누스 학습할 것이 거의 없다 식이 틀리면 결과도 틀린다 ② 합성 데이터로 학습 Uplifting · TT4D 시뮬레이터 궤적 수만 개 3D·회전 정답이 공짜 트랜스포머 2D 점 열 → 3D 점 열 + 회전 증강: 점 빼기, fps 20–60 실제 영상 3D 정답 없이 학습 틀리는 곳 = 합성과 실제의 차이 TT4D: 먼저 3D 로 올린 뒤 사건을 나눈다 바운드 = 높이 z 의 극소 타구 = 길이 방향 x 의 극값 2D 의 「V 자」 보다 3D 의 「바닥에 닿음」 이 정의에 가깝다
Figure: Physics-based fitting vs. synthetic data-trained converters

2. Fitting with Physics Models: TT3D

TT3D (CVPR 2025 Workshop) minimizes learning and relies heavily on physics.

  1. Camera Calibration: A table segmentation model (a small U-Net++, 1,200 labeled images, Dice loss) detects the table region, and its four corners are used to simultaneously solve for the camera's position, orientation, and focal length (alternating between PnP and focal length search). A Kalman filter smooths these values over time. The corner error was 2.39 ± 1.47 pixels (evaluated on 40 images, from the paper).
  2. 3D Position of Bounces: This is the intersection point between the line of sight at the bounce moment and the table plane. The bounce timestamp is found by fitting piecewise quadratic curves to the 2D trajectory and incorporating the blur angle computed by BlurBall (Episode 9).
  3. Velocity and Spin: Treating velocity (3 components) and spin (3 components) right before a bounce as unknowns, the flight equations are integrated using these values to optimize the reprojected screen position so that it closely matches the observed 2D position (minimizing reprojection error).

The flight equations are as follows (from the paper, notation altered):

m · dv/dt = −k_D · |v| · v  +  k_M · (ω × v)  +  m · g
m = 2.7g,  k_D = 3.8 × 10⁻⁴,  k_M = 4.86 × 10⁻⁶,  공 반지름 2cm

The first term represents air resistance, the second term the Magnus force, and the third gravity. Bounces are modeled with a restitution coefficient of 0.85 and a friction coefficient of 0.3, calculating whether the ball slides or rolls on the table. (The paper used a positive sign for k_D, but to ensure air resistance opposes motion, sign conventions must be aligned. The TT4D appendix uses a minus sign for the same k_D, and defines k_M as 3 × 10⁻⁶, differing from TT3D. Our example uses the TT3D values with a negative sign.)

3. Converters Trained on Synthetic Data: Uplifting Table Tennis

While physics fitting is accurate, it is slow, and missing observations or high noise can trap the optimization in local minima. Two papers by Kienzle et al. take a different route. They train a transformer that directly takes a 2D point sequenceand outputs 3D point sequences and spin.

The challenge is ground truth. Real videos lack ground truth for both the 3D position of the ball and its spin. Therefore, ground truth is generated using a simulator.

The critical bridge from synthetic data to reality is augmentation. Because real detectors miss the ball and frame rates vary, 5% of points were randomly dropped during training, and frame rates were sampled between 20–60 fps. Sudden trajectory cutoffs, motion blur, and fuzziness were also simulated. Furthermore, instead of token indices, the transformer's positional encoding utilized actual timestamps(rounded to the nearest 2ms), allowing the model to understand temporal relationships even when frames are dropped or intervals vary (from the paper).

The frontend 2D detector is trained on real video. The ball is detected across 3 consecutive frames, and the table is found using 13 reference points via heatmaps (squared error, σ=6 pixels). The ball detector was pre-trained on 50,000 frames of BlurBall data and then fine-tuned on 1080p table tennis footage (TTHQ). If the results disagree with an auxiliary detector of a different architecture, the detection is discarded (from the paper).

4. Lifting to 3D First, Then Splitting Events: TT4D

TT4D (ACM MM 2026) reverses the order. While previous methods first detected bounces and hits in 2D trajectories and then lifted the segments in between to 3D, TT4D lifts the entire rally to 3D first and then segments the events.

In 2D views, bounces and hits both look like "V-shaped bends" and are easily confused, but in 3D they are fundamentally defined as "touching the floor" versus "reversing direction." Training was performed on roughly 3 million synthetic trajectory points, with occluded frames masked out during training and filled using interpolation tokens. The model is lightweight with 1.6 million parameters (from the paper).

5. Hands-on: How Much Does Spin Curve the Ball and Can We Reverse-Fit It?

code/11_spin_physics.py integrates the flight equations above at 1ms intervals (code/11_spin_physics.out.txt).

Landing Spot Shift Caused by Spin. A ball hit from 30cm above the player's baseline at an initial speed of 7.05 m/s (at a slight upward angle of 6.5°).

아랫회전 50rps: x = 2.68m, 비행 463ms
회전 없음    : x = 2.09m, 비행 348ms
윗회전 50rps : x = 1.74m, 비행 284ms
참고: 공기가 없다면 x = 2.39m. 탁구대 길이는 2.74m

A spin of 50 revolutions per second shifts the initial landing point from 1.74m to 2.68m—a difference of nearly 1m. Flight times also vary significantly, from 284ms to 463ms. Even without spin, air resistance causes the ball to land 30cm short compared to a vacuum. Because the ball is lightweight (2.7g), air effects are substantial.

Reverse-Fitting. The flight segment before the first bounce of a ball with 50 rps topspin was observed at 60fps and 30fps with added 3D position noise, and 3 initial velocity components and 1 spin component were fitted using Gauss-Newton least squares (repeated 30 times). This is a heavily simplified version of the TT3D method. The spin axis was constrained to a single lateral axis.

Observation 3D Position Noise Estimated Median Absolute Error Median Top/Backspin Accuracy
60fps (17 pts) 1cm 50.5 rps 6.2 rps 100%
60fps (17 pts) 3cm 49.1 rps 26.3 rps 97%
30fps (9 pts) 1cm 50.9 rps 6.0 rps 100%
30fps (9 pts) 3cm 41.7 rps 22.2 rps 87%

When position noise is 1cm, the spin direction is always correct and the magnitude is within roughly ±6 rps. At 3cm, the magnitude becomes practically unreliable, and at 30fps even the direction is wrong 13% of the time. Because spin is concealed within microscopic curvatures of the trajectory, position errors of just a few centimeters completely mask the signal. In reality, only 2D positions—not 3D positions—are observed, making it even harder. Consequently, rather than regressing spin as an exact value in rps, papers tend to evaluate it via topspin/backspin classification(see table below).

6. Paper Figures

Method Value (Paper) Conditions
TT3D 3D average error: Side 8.9cm(12.4 with noise) · Diagonal 14.5 (17.1) · Back 22.3 (29.8). Success rate side 97.3% Ground truth is 200Hz multi-camera 3D tracking (club match, orange ball). 2D input simulated at 25fps, 130 trajectories, position noise 2px, blur angle 6°. Spin ground truth is unavailable, so spin accuracy is not evaluated.
Kienzle et al. 2025 Spin classification accuracy for 50 real trajectories 92.0%, F1 0.917 International tournament 6 matches, 2560×1440 at 50Hz. Trained exclusively on 50,000 synthetic trajectories.
Uplifting Table Tennis TTST (perfect input) accuracy 97.1%, reprojection 3.43px. At half frame rate + 10% detection dropout, accuracy is 97.1%, 5.75px (previous version collapsed to 67.7%). Full pipeline TTHQ 57-trajectory spin accuracy 89.5% Backend trained solely on 140,000 synthetic trajectories + frontend trained on real video
TT4D Bounce F1 0.92, Hit F1 0.83 (within ±2 frames). TTST spin macro F1 1.000 (clean), 0.941 (half frame rate + dropout) Dataset for event F1 is unclear from the text. Proposes a dataset of 146 hours across 46,000+ matches. Unreleased as of 2026-10-15 (arXiv v2 states only "will be released." Original unit uses "games," but since it's best-of-5, it effectively means matches).
TT4D vs. TT3D Single side segment 3D error: TT4D 15.04cm, TT3D 29.86cm Alternative benchmark created by TT4D(less filtered data, includes noise). Must not be placed on the same line as the 8.9cm figure from TT3D above.

The final row requires extreme caution when citing. TT3D reports 8.9cm on its own benchmark, but scores 29.86cm on TT4D's benchmark. Different benchmarks can yield numbers that differ by more than a factor of three for the exact same method.

7. Physics-based vs. Learning-based Models

Fitting with Physical Models (TT3D) Learning with Synthetic Data (Uplifting · TT4D)
Training Data Almost none (table segmentation only) Tens of thousands to millions of synthetic trajectories
Source of Ground Truth The equations themselves Simulator (same physics, different usage)
Missing observations and changed fps Optimization can become unstable Learned in advance via augmentation (survives half fps + 10% dropout)
Speed Optimized per rally Single forward pass (TT4D achieves over 500 fps on a desktop-grade GPU)
Explainability Each term in the equation can be inspected Close to a black box
Where Failures Occur Where equations differ from reality (ball state, surface friction) Where the simulator differs from reality (synthetic-to-real gap)

These two approaches are closer than you might think, because the "ground truth" for learning models ultimately comes from physics simulators. The difference is whether you solve the physics every time during testing (optimization) or internalize it once during training (augmented synthetic data).

8. Limitations

9. Connection to Our Project

A word from TT. A ball spinning at 50 revolutions per second can land nearly a meter apart even when hit with the same force. Conversely, inferring spin from the trajectory required knowing the ball's position within 1 cm. Deflecting is large, reading is hard. That is spin for you.

References

Sign in to like

Comments

No comments yet.

Sign in to leave a comment