Fast, Robust, Rust-powered Positional Tracking Data Loading for Football Analytics
FASTFORWARD Supports 11 positional tracking data providers: SecondSpectrum, SkillCorner, Sportec, Tracab, HawkEye, GradientSports, Signality, StatsPerform, RespoVision, OptaVision. 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
# 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 | ✓ | StatsPerform FIFA EPTS format | ||
| RespoVision | ✓ | ↗ | Includes support for v1 data | |
| SecondSpectrum | ✓ | ↗ | ||
| Signality | ✓ | ↗ | ||
| SkillCorner | ✓ | ↗ | ↗ | Includes support for v3 data |
| Sportec | ✓ | ↗ | ↗ | |
| Stats Perform | ✓ | ↗ | Includes support for MA1, MA3, and MA25 data feeds | |
| Tracab | ✓ | ↗ |
Benchmarks
Repository conventions
/internal_docs/is a working-drafts directory. It is gitignored and never published to the docs site. Put any in-progress notes or analyses there instead of underdocs/.
Metadata
Release files for fast-forward-football 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 274.8 MB
Release files / fast_forward_football-0.1.3-cp313-cp313-win_amd64.whl
| Download URL | fast_forward_football-0.1.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
57bb5e68be976908bf24daa388aedd723581516d1c2f495c22759ad0220c13f6
|
|
BLAKE2b-256 checksum How to use checksums |
72df0e73b12d0f204fea005a4e955c532ca843fdd7b579ee687644c9d2763005
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.1.3-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
fd9d13937b2a9678f6dfa2847bc5e1a14b5d89959e520fe34971192a45e06821
|
|
BLAKE2b-256 checksum How to use checksums |
46eb4639bb09beed9ef0df0b9c790c46c75da27db0337432e7bc9f1953ca8ed5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2db2776b011a7a71daab431dc83a31ed800194aace99e6681cd02fc60277cfb1
|
|
BLAKE2b-256 checksum How to use checksums |
11b3ad85011bb7723d8cb20b7c72ece29a139b60fc5691333fb1a0bed17bad6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.1.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.5 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8e6840dc553a958fc8d6152b5ea4056a17aa29f74dc5b1be6a3534c17918bab1
|
|
BLAKE2b-256 checksum How to use checksums |
e9c171db52f59786ff1d24455af767f3e18101b91abcf8951f2888759414f0c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 19.0 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
080e1fa8ad44a33c33103b0635025f7a2bb083e495f481f826fdf103ae6992f1
|
|
BLAKE2b-256 checksum How to use checksums |
df1e9181ebb81b3fd43562c88b3a487970186a8597abdd287377a590739a7fbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp312-cp312-win_amd64.whl
| Download URL | fast_forward_football-0.1.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
79b83209e8b10493267593be48148593ddafa811fd0baa2b7144f3511c9a318d
|
|
BLAKE2b-256 checksum How to use checksums |
5039a7fcecbf52be4da553a902365a6f05bf2d04556fca38a8e9183c087ed568
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.1.3-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
b239ead4e4c41ab5eda86e081d83aeeaa97aad03cda3fc41330b688cac5d5f85
|
|
BLAKE2b-256 checksum How to use checksums |
f7920b08e0dc54f92f90dbf07208f961bd76ea0eb5fc9915b814c8e36f521f8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9db15581a02e48b1fb50985b17b89e3fed48e42eefa098ef890a9c7845b7484b
|
|
BLAKE2b-256 checksum How to use checksums |
f86b80c3f159c7e5a8790b8529630bf7e49207df37763277e945c09a965e60c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.1.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.5 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
261f71277993f65201dcc53968423c4cf6e4efe7f65fe867d579bebc72ea3b96
|
|
BLAKE2b-256 checksum How to use checksums |
befac4587a94db0730693cc0e4da842fd3da979577ab1d275fc179e966f97c82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 19.0 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
4427289a56a51957a9a6e96cf597fa4128899003fc6361cf5bc313bd82ef31fa
|
|
BLAKE2b-256 checksum How to use checksums |
db9f200892b2e0ec88b00c6e5d26c5bb6d1edb74aafe103a2162b73afa31f224
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp311-cp311-win_amd64.whl
| Download URL | fast_forward_football-0.1.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 19.3 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ea182756683a5abde4d25d950134f99c9f9e2c05bd0fd4a6fd70c06cb60be1fb
|
|
BLAKE2b-256 checksum How to use checksums |
5fa819b5daf61b6642c8dc583a744d2dee3b50213a0aad7818cf4ea398e6c502
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | fast_forward_football-0.1.3-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 16.5 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
54d21b25ed3e91fcbe9c3f8d79bce6b1376fb69854e474e7199a6afb53d9598c
|
|
BLAKE2b-256 checksum How to use checksums |
70b61581dc6bf06e7605542646c0a27bf22081d2f4b4cf6ebbed46307ec93331
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 19.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
afe0ed75b91a9ce0eb245c932a12ba84bd15797f21a9d64bb2a26f32a62917c8
|
|
BLAKE2b-256 checksum How to use checksums |
b842e6a394449b6cef70632aa35d7c25ae773f563c997408fcfeb2e493a286c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | fast_forward_football-0.1.3-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 17.5 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
42d5cb6f7c1b21fdd59e8a9e25542acc9ee8874d7ef3519386df64ac0a7cf456
|
|
BLAKE2b-256 checksum How to use checksums |
79f36fb076c291c13b93327f6b2e74eccba42222923b796dabb4fc2e34ce0da0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / fast_forward_football-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | fast_forward_football-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 18.9 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9798d933c3579652609882eccfcd8662842a355758a2707480a2df2483dc1abc
|
|
BLAKE2b-256 checksum How to use checksums |
aa42d27cbf20b342652b7861b453cdeb6da94f37320244acc9b43e831db1bcd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|