Combine Motion FLM (V1)

A frame-level Foundation Motion Model for athletic movement, pretrained on NFL Big Data Bowl 2027 tracking data with three self-supervised objectives β€” masked-segment reconstruction (MAE), short-horizon forecasting, and InfoNCE identity β€” evaluated on the pre-registered MotionBench benchmark.

Architecture

Component Spec
Input per-frame 9-dim kinematics (x, y, s, a, dis, o, dir + aligned velocity sin/cos), 10 Hz, 128-frame windows
Core Mamba-2 d128Γ—2 on GPU; GRU d128Γ—2 fallback (this release: GRU, trained on CPU)
Heads recon (masked frames), forecast (context→future offsets, residual on constant-velocity continuation), InfoNCE identity (proj dim 64)
Params 0.24 M

Training data

  • Combine drills: 510 players, 463k frames (2023–2025 classes).
  • Game tracking: 22.65M frames (2023–2025 seasons).
  • 277,508 windows (7,014 combine + 270,494 game) in an fp16 memmap store; splits frozen by construction (combine 2023–24 + game REG 2023–24 β†’ TRAIN; combine held-out drill classes + game 2025 wk1–9 β†’ VAL; combine 2025 + game 2025 wk10–18 β†’ TEST).

Results (real data, pre-registered MotionBench)

GPU mamba2 (12 epochs, T4Γ—2): T1 PASS β€” ADE@10 0.249 yd vs constant-velocity 0.484 yd (βˆ’49% error); T2 PASS (7.61 yd @64 vs kNN 51.09); T7 PASS. Scoreboard: 3/6.

Gate Result Verdict
T2 long-horizon continuation ADE@64 7.92 yd vs kNN 51.09 Β· ADE@128 8.37 yd vs 53.46 βœ… PASS (6.4Γ—)
T7 calibrated draft decision conformal coverage 80.2% (76–84% target); net benefit 0.221 > 0.191 draft rule βœ… PASS
T1 short-horizon forecast V0 0.586 β†’ V1 0.497 yd vs CV 0.484 yd (residual-on-CV head) at CV parity, βˆ’2.7%
T4 drillβ†’game retrieval recall@10 β‰ˆ random at V0 βŒβ†’L3/L4
T6 draft-success probe pAUC lift βˆ’0.14 at V0 (raw drills > embedding) βŒβ†’L3/L4
T3 changepoint audit 30-attempt manual audit pending ⏳

T7 is the decision-relevant headline: the conformal-calibrated FLM beats the draft-capital rule on real data at V0.

Usage

import torch, sys
sys.path.insert(0, "path/to/repo")            # clone from GitHub
from src.evals.motionbench import load_model
model, ck = load_model("flm_best.pt", "cpu")  # 0.24M params
h, z = model(x, mask)                          # x [B,128,9] normalized, mask [B,128]
# z: motion embedding for retrieval / probes
# model.forecast(x, mask, horizon_eval=10): residual-CV future offsets

Input normalization uses TRAIN-split statistics shipped in the repo's data/proc_*/feat_stats.json (per-channel mean/std over valid frames).

Limitations

  • V0/V1 is a 0.24M-param GRU trained ≀4 CPU epochs β€” it is a calibrated starting point, not a finished model; T1/T4/T6 gates are open.
  • T3 requires human auditing (30 attempts) and is not_evaluated by design.
  • Trained on NFL Combine and NFL game data (CC BY-NC 4.0) β€” non-commercial use.

Citation

@misc{combine_motion_flm_2026,
  title  = {Combine Motion FLM: A Frame-Level Foundation Model for Athletic Movement},
  author = {Hisernberg},
  year   = {2026},
  url    = {https://github.com/Hisernberg/nfl-bdb-2027}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support