I recalled back to my PhD work on solving acquisition problems using generic algorithms and realized I could actually do it. One covid year later and I've almost finished it.
You give it the champion, the play style and divide up the abstract stats like Damage, Effective Health, Gap Close, etc... and the genetic algorithm gives an optimized build order for it.
The site is backed by ~450,000 pre-computed build orders, which took a week to generate on a 32 core box.
I've been talking to some challenger (really good) players and got a list of things that needed to be done. Basically being able to change the various options used by the model and being able to override runes/items.
Since it wouldn't be practical to run the whole genetic algorithm in a web browser, I've implemented a hill climber, which runs in the web browser, that accepts the output of the genetic algorithm, the user requested changes and then it hill climbs the build order back to the local optima.
The genetic algorithm was written in Kotlin (compiled to JVM) so I used Kotlin's compile to Javascript to create the web based hill climber.
I've also implemented guides so you save the builds you find from the optimizer. You can login as guest/guest.
Build Orders: https://www.lolsolved.gg/builds/ Technical Explanation: https://www.lolsolved.gg/about User Guide: https://www.lolsolved.gg/help
I'm sticking around so feel free to ask questions.