Dear PyGui frontend for the floodlight sports analytics package
Project description
floodlight-gui
A desktop application for loading, inspecting, transforming, modeling, and visualizing sports tracking and event data, with no scripting required.
About
floodlight-gui is a Dear PyGui frontend for floodlight, a data-driven sports analytics framework for tracking and event data. It exposes floodlight's parser, transforms, models, metrics, and plotting through a six-tab interface (Load, Inspect, Transforms, Model, Metrics, Visualization).
Everything the GUI shows comes straight from floodlight, so the analytics stay faithful to the library. If you prefer to script directly, head to the floodlight repository.
Features
- 10+ data providers: DFL / STS, Tracab / ChyronHego, Kinexon, Opta, Second Spectrum, SkillCorner, Sportradar, StatsPerform, and StatsBomb, plus two bundled public datasets (EIGD-H handball, IDSSE football) that download on demand.
- 9 models: Velocity, Acceleration, Distance, Centroid, Nearest Mate, Nearest Opponent, Convex Hull, Metabolic Power, and Discrete Voronoi, with live Convex Hull and Voronoi overlays on the pitch.
- 3 metrics: Approximate Entropy, Zone Aggregation, and Formation Similarity.
- Transform suite across five categories (filter, interpolation, spatial, temporal, permutation) with an apply / undo / reset operation stack.
- Interactive pitch visualization with playback, keyboard shortcuts, and a GPU-accelerated drawlist that holds 60+ FPS on typical playback.
- Export: single frames as PNG / SVG / PDF, model and metric results as CSV, and optional MP4 clips.
- In-app help: a
?button beside every model, transform, metric, and provider opens the upstream floodlight documentation.
Install
From PyPI (Python 3.10 to 3.13)
pip install floodlight-gui
floodlight-gui
For MP4 clip export, add the optional video extra, which bundles ffmpeg:
pip install "floodlight-gui[video]"
Standalone executable (no Python required)
Download the build for your operating system from the Releases page, unzip it, and run the floodlight-gui executable inside.
The binaries are currently unsigned, so on first launch:
- Windows: click "More info", then "Run anyway".
- macOS: right-click the app and choose "Open" (once).
Quickstart: IDSSE football
A five-step interactive session against the bundled IDSSE football dataset (no manual file paths required).
1. Load a match
Open the Load tab, pick IDSSE (Public Dataset) as the provider, and choose a match from the combo. The loader downloads and caches the dataset, then unifies it into floodlight's XY / Events / Teamsheet / Pitch objects.
2. Visualize positions on the pitch
Switch to the Visualization tab. Players render as labeled circles on a live pitch. Use the period selector and the playhead to scrub through frames.
3. Fit a Convex Hull model
In the Model tab, pick Convex Hull, click Fit Model, and toggle its overlay on. The team hull polygon appears on the pitch, expanding and contracting as players move.
4. Layer a Voronoi tessellation
Repeat the flow with Discrete Voronoi: fit, toggle, and return to the visualization tab. The cells render per player, colored by team, at interactive framerates.
5. Open per-descriptor help
Every descriptor has a ? button beside it. Clicking it opens a modal with the upstream floodlight documentation (summary, parameters, examples, and a link to the online docs).
Guides
Task-oriented walkthroughs live in docs/:
- Loading data: file providers, the bundled public datasets, and building or replacing a pitch.
- Transforming tracking data: filtering, interpolation, and the apply / undo / reset op stack.
- Fitting models and exporting results: single and multi-team models, reading outputs, and CSV export.
- Visualization and export: playback, model overlays, and exporting frames and clips.
For the meaning of any individual model, transform, or metric, click its ? button in the app. The analytics theory lives in the floodlight documentation.
Contributing
Contributions are welcome. See CONTRIBUTING.md for the local development workflow and how to add a new provider, model, transform, or metric by writing a single descriptor.
Citation
If you use floodlight-gui in research, please cite the underlying library:
@article{Raabe2022,
doi = {10.21105/joss.04588},
url = {https://doi.org/10.21105/joss.04588},
year = {2022},
publisher = {The Open Journal},
volume = {7},
number = {76},
pages = {4588},
author = {Dominik Raabe and Henrik Biermann and Manuel Bassek and Martin Wohlan and Rumena Komitova
and Robert Rein and Tobias Kuppens Groot and Daniel Memmert},
title = {floodlight - A high-level, data-driven sports analytics framework},
journal = {Journal of Open Source Software}
}
Acknowledgements
This project has received funding by the BMBF (Bundesministerium für Bildung und Forschung, 01IS20021A) and the DFG (Deutsche Forschungsgemeinschaft, ME 2678/43-1) and has been kindly supported by the Institute of Exercise Training and Sport Informatics at the German Sport University Cologne.
License
Released under the MIT License. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file floodlight_gui-0.1.0.tar.gz.
File metadata
- Download URL: floodlight_gui-0.1.0.tar.gz
- Upload date:
- Size: 434.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ea8b344ddf1d82e0f869ce1159411251ac66c2fc93177f3ac4fd17fce190420
|
|
| MD5 |
807380a90f2166ccf6e2cda67859b847
|
|
| BLAKE2b-256 |
a64b5241f86051897d5ce34b8d993a9b1e6535e86368b28a398b474b8a407c58
|
Provenance
The following attestation bundles were made for floodlight_gui-0.1.0.tar.gz:
Publisher:
release.yml on spoho-datascience/floodlight-gui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
floodlight_gui-0.1.0.tar.gz -
Subject digest:
4ea8b344ddf1d82e0f869ce1159411251ac66c2fc93177f3ac4fd17fce190420 - Sigstore transparency entry: 2038231043
- Sigstore integration time:
-
Permalink:
spoho-datascience/floodlight-gui@882e328185805e31d1b7bc75e7e3afadbd785c58 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/spoho-datascience
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@882e328185805e31d1b7bc75e7e3afadbd785c58 -
Trigger Event:
push
-
Statement type:
File details
Details for the file floodlight_gui-0.1.0-py3-none-any.whl.
File metadata
- Download URL: floodlight_gui-0.1.0-py3-none-any.whl
- Upload date:
- Size: 350.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fd3f309727412e3a174f788520a44caafb26c0404087c0416b5d8d1c01dcef1
|
|
| MD5 |
42d803da60293afe371e3f3d85cb4d44
|
|
| BLAKE2b-256 |
3ebfba24d5003482170fb47f79f60d3fdc207172a26f1661355b4d9f0008d7fc
|
Provenance
The following attestation bundles were made for floodlight_gui-0.1.0-py3-none-any.whl:
Publisher:
release.yml on spoho-datascience/floodlight-gui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
floodlight_gui-0.1.0-py3-none-any.whl -
Subject digest:
1fd3f309727412e3a174f788520a44caafb26c0404087c0416b5d8d1c01dcef1 - Sigstore transparency entry: 2038231204
- Sigstore integration time:
-
Permalink:
spoho-datascience/floodlight-gui@882e328185805e31d1b7bc75e7e3afadbd785c58 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/spoho-datascience
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@882e328185805e31d1b7bc75e7e3afadbd785c58 -
Trigger Event:
push
-
Statement type: