Fast, Robust, Rust-powered Positional Tracking Data Loading for Football Analytics
FASTFORWARD Supports 12 positional tracking data providers: SecondSpectrum, SkillCorner, Sportec, Tracab, HawkEye, GradientSports, Signality, StatsPerform, RespoVision, OptaVision, SciSports. Additionally, it supports the Common Data Format.
This project owes a depth of gratitude to Kloppy and all its contributors.
⚠️ STATUS: This project is currently in Beta. Only the Python bindings are available (not the Rust code). Please try it, and report any issues here.
❓ ENQUIRIES: If you work for a (skeletal) tracking provider, or have access to (skeletal) tracking data from an unsupported provider and would like to see support for your data, please contact me at joris at unravelsports dot com.
Installation
pip install fast-forward-football
Usage
from fastforward import secondspectrum, skillcorner, sportec, tracab, hawkeye, cdf, gradientsports, signality, statsperform, respovision, optavision, scisports
# Load tracking data (example with SecondSpectrum)
dataset = secondspectrum.load_tracking(
raw_data="tracking.jsonl",
meta_data="metadata.json",
layout="long", # "long", "long_ball", "wide"
coordinates="cdf", # Coordinate system
orientation="static_home_away",
only_alive=True,
)
# Access data via properties
tracking_df = dataset.tracking # pl.DataFrame
metadata_df = dataset.metadata # Match metadata
teams_df = dataset.teams # Team info
players_df = dataset.players # Player info
periods_df = dataset.periods # Period info
Provider Support
| Provider | Tracking Data | Public Data | Docs | Notes |
|---|---|---|---|---|
| CDF | ✓ | ↗ | ||
| GradientSports | ✓ | ↗ | ↗ | Formerly PFF |
| Hawkeye (2D) | ✓ | ↗ | Joint tracking data is not yet supported | |
| OptaVision | ✓ | ↗ | ||
| RespoVision | ✓ | ↗ | Includes support for v1 data | |
| SciSports | ✓ | ↗ | ||
| SecondSpectrum | ✓ | ↗ | ||
| Signality | ✓ | ↗ | ||
| SkillCorner | ✓ | ↗ | ↗ | Includes support for v3 data |
| Sportec | ✓ | ↗ | ↗ | |
| Stats Perform | ✓ | ↗ | Includes support for MA1, MA3, and MA25 data feeds | |
| Tracab | ✓ | ↗ |
Distributed Compute
For Spark, Ray, and Dask workflows, fast-forward exposes engine="arrow" and engine="arrow[spark]" paths that return pyarrow.Table directly without importing kloppy on executors. See Distributed Compute.
Benchmarks
Metadata
Release files for fast-forward-football 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 273.1 MB
Release files / fast_forward_football-0.3.0-cp313-cp313-win_amd64.whl
| Download URL | fast_forward_football-0.3.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d1e7704918dcf65d75fe0c8dddd4332cb5b546c1a9a8c5dc679dc4bc5523bc6e
|
|
BLAKE2b-256 checksum How to use checksums |
51d6dd1a3780ee753171aabf78cb41f0c230294ad7263953c876c2ff7d2df432
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.3.0-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.4 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
05d6ffc94c368b0607e2dcb40705cbd4057221837b0ea39a93b58a471d0e07d9
|
|
BLAKE2b-256 checksum How to use checksums |
46d8f037128f65b5f11f23efd3c1b03534dd6ed7c5806ad4ee5a2d0984fa23f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.2 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
71b3f1468dee5ad614cc9bf4c7f107ef5aa3360695c4555e6ba45f271056d0a7
|
|
BLAKE2b-256 checksum How to use checksums |
ec232b16180099a444f8367132ac0871c34d88a16f3b2bb92fb09ecc45f3c9cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.3.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.3 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
697bf2708e79c0b32ce28f07e04b01a295b86043219afe530aa6cccd087d2ccf
|
|
BLAKE2b-256 checksum How to use checksums |
70ab9e09435d533af94ae67b8ac86ded9369270308c1f73df3ec179eb24553dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e780d8e8d16fdb8b38c2e86a16ff1fd3a35868e1237dff167357423ced9168c3
|
|
BLAKE2b-256 checksum How to use checksums |
d3c08fc20b96672019029674186bc5e6d99416bfcc1e5420e6bf18018190fa19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp312-cp312-win_amd64.whl
| Download URL | fast_forward_football-0.3.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3d26ab90bc13046075df265253a21ee271094cb2e3f31051461cd0e8ac8ecd8b
|
|
BLAKE2b-256 checksum How to use checksums |
d89ae0ec4eac63a2a7f7138ae6048e3e1ad43a3a2e7f45614a04cceb62224373
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.3.0-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.4 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5f6b9f9c5054f93b7b25e19e9c17e64bbae5024e80290b4e7fd93d1c326bfa34
|
|
BLAKE2b-256 checksum How to use checksums |
696f2fe6f27fc4e311b28e4a1b9f3359668f1d35399bbe301e5ea71f93a156f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
16c6b6453fb7f19f1946b1e61df38f17552a4601c4749658062d10708a93bff7
|
|
BLAKE2b-256 checksum How to use checksums |
3b58d8f8eaaeccbdedb482c8fa6dfdedcc84091c0dd50bfabf5334a3f962aa65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.3.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.3 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e1bd3b623e004ccf7df14fb298b372cb51f809884b648671fbc6a6551356e9ed
|
|
BLAKE2b-256 checksum How to use checksums |
b467fedac3e53ccf87e58aee2f514f5410a7aadadf402ce908c3dca723b60a7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
0e3160fb8fc97f1a74c9f90d25abe26b8f10f66e0a84945fe79d2560c97201f2
|
|
BLAKE2b-256 checksum How to use checksums |
a643bdace1f536d44acbfaa11a0e4bfe58f24e6e9a32ba1c4603140d33a2ba3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp311-cp311-win_amd64.whl
| Download URL | fast_forward_football-0.3.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
80d18a7abbae2af628f2bfcf8074b1313ca4c89dbc7ccba0e718989b362ba739
|
|
BLAKE2b-256 checksum How to use checksums |
3475b9815aeec6652e21d14e4f7d961305798be8024f66becf07a28693fa72cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.3.0-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.4 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
1693f566bdf833ebd9bf91af948029caa9a1d1ee81ebda664e278936c08b5f2a
|
|
BLAKE2b-256 checksum How to use checksums |
ca26d31fd07c1eab3feefba13c9c79514710084fe49d7ee356d8598049ef1a87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
14d115dfe2b07c33e738a9f9752a4efc3ddace8cb28d351ee9e31d44ea6fd2b5
|
|
BLAKE2b-256 checksum How to use checksums |
10f226c0a37644c73971172e3dca05a7fd30d5bbc35b1f38f6cbd5ef43b46acc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.3.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.3 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
77363adf7791698d83ed40c805035dffa6c7b5dd90d003079b62b0bc8658b4d0
|
|
BLAKE2b-256 checksum How to use checksums |
589504bf143bb60df1f2155208a0c6526be76963487f60ad1f582a0b091e43e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / fast_forward_football-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 18.7 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6d6834a109957b73fc03edd1c9e179a7125a8be01a2a5a1c6bc802bcc46c73f
|
|
BLAKE2b-256 checksum How to use checksums |
9a83282831a9443d7ae383ba52865a7cd20df51278354752c1c6833bdc11541c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|