Most of my coding time these days goes into cellular-automata tinkering, but I keep one side project running that has nothing to do with grids and rules - and since this crowd appreciates a good simulation, I figured I'd share it.
It's a small Python engine that rates tennis players. It ingests historical ATP and WTA results and gives each player a single strength number, then updates it after every match - an Elo-style system, the same core idea chess ratings use. What began as a throwaway script grew into something with surface adjustments (clay vs grass changes a lot), inactivity decay, and sane handling of mid-match retirements. Like any simulation over messy real data, the cleaning is most of the work.
It actually rhymes with CA work more than I expected: a simple update rule applied over and over, emergent rankings you didn't hand-design. Two questions for the algorithm-minded here: do you keep a coding hobby outside cellular automata? And for anyone who's built rating systems (Elo, Glicko, TrueSkill), how did you handle volatility for players with very few matches? That's the part I keep rewriting.
Quick update: I finally cleaned it up and put it online — it's a lightweight tennis rating model now, if anyone fancies a look away from the gliders.
Off-CA side project: an Elo-style rating engine for tennis in Python
-
EthanWalker52
- Posts: 1
- Joined: June 26th, 2026, 1:37 pm
Off-CA side project: an Elo-style rating engine for tennis in Python
Last edited by EthanWalker52 on June 28th, 2026, 3:18 pm, edited 1 time in total.
- I6_I6
- Posts: 1104
- Joined: July 26th, 2025, 8:44 pm
- Location: Here, there, somewhere, anywhere, everywhere.
- Contact:
Re: Off-CA side project: an Elo-style rating engine for tennis in Python
Welcome to the Forums!EthanWalker52 wrote: June 26th, 2026, 1:48 pm Most of my coding time these days goes into cellular-automata tinkering, but I keep one side project running that has nothing to do with grids and rules - and since this crowd appreciates a good simulation, I figured I'd share it.
It's a small Python engine that rates tennis players. It ingests historical ATP and WTA results and gives each player a single strength number, then updates it after every match - an Elo-style system, the same core idea chess ratings use. What began as a throwaway script grew into something with surface adjustments (clay vs grass changes a lot), inactivity decay, and sane handling of mid-match retirements. Like any simulation over messy real data, the cleaning is most of the work.
It actually rhymes with CA work more than I expected: a simple update rule applied over and over, emergent rankings you didn't hand-design. Two questions for the algorithm-minded here: do you keep a coding hobby outside cellular automata? And for anyone who's built rating systems (Elo, Glicko, TrueSkill), how did you handle volatility for players with very few matches? That's the part I keep rewriting.
Could you provide the website/githup repo link?
Also, non-CA topics usually fit in the sandbox forum. Done --hotdogPi
Code: Select all
#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!