This is a Python simulation to illustrate Monero's dynamic block size algorithm. Notation and calculations are drawn from https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf
I wrote the code using Spyder, and would suggest running it with Spyder or a similar tool.