Show HN: A football/soccer pass visualizer made with Three.js (statsbomb-3d-viz.vercel.app)
I've been working on a football pass visualiser for the past week.
It uses open data from StatsBomb to analyse and visualise passing patterns, allowing users to explore and filter the data by pass distance, team and players.
36 comments
[ 3.0 ms ] story [ 68.3 ms ] threadLike a “try example button”
Lower friction to test
After loading it, I don’t quite understand why you use threejs. Because you also use a heat map to show the height of the pass. The passing route on whoscored seems more intuitive.
Also, I wonder what the best way to get insights out of this data is -- feels like exploration is the first step, but adding value on top would be really great.
OK, I'll stop brainstorming :-) Cool visualization!
Also, combining this with real-time in-game camera play could be really powerful, too[0]. Like illuminating details during the game.
[0] https://x.com/skalskip92/status/1816461263829889238
Still, it is a very interesting demo, and just like airstrike suggested (https://news.ycombinator.com/item?id=41096570), now that the main engine is in place, more filters would be make this even more interesting. Well done.
https://raw.githubusercontent.com/statsbomb/open-data/master...
This should work!
This works!
https://github.com/statsbomb/open-data
Part of the soccer data is us going back and collecting every Lionel Messi game, and we started doing the same for Tom Brady in American football here:
https://github.com/statsbomb/amf-open-data
[1] https://tombradytds.com [2] https://tombradytds.com/viz.php
Are others working around this somehow or is it just an issue for me with two browsers for some reason?
They provide higher level visualization primitives and are optimized for performance with large datasets. They would also allow you to try out different visualization methods more easily, or even overlay multiple ones.
Both packages allow for very fast prototyping (with kepler.gl, you might be able to mock up something with no code at all), so trying out this approach shouldn't involve an enormous amount of work.
Good luck!