A simplified Python simulation of diffusion
thepythoncodingstack.com
thepythoncodingstack.com
https://youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhf...
Though he uses https://p5js.org/ for most if not all of his challenges (at least the last time I watched his videos).
First ditch all the object orientation and encapsulation and stuff. Your data is a 2xN Numpy array. Your visualization is a scatter plot in Matplotlib. Voila, 80% of the code is gone.
For the position updates, you either use a repulsive potential to approximate the hard spheres and do molecular dynamics, showing how to integrate Newton's second law and the Verlet scheme and ergodicity and the whole shebang. Or you do Monte Carlo for the positional updates and keep the exact hard spheres. You discuss statistical mechanics concepts like ensembles and thermostats and stuff.
Then you produce results like the pair correlation function and compare it with the Carnahan-Starling equation, dig into the really cool stuff. Compute velocity autocorrelation functions, test what happens when you change density and temperature, talk about phase diagrams, etc.
This is actually an amazingly deep subject, yet very accessible and intuitive, that sits on the border between physics and chemistry. Sad to see it treated like this. Would suggest that people have a look at the book by Allen and Tildesley which is much much better. They have both Python and Fortran example code on Github.
It might not be the realistic simulation of what's going on but gets the intuition across very well nonetheless.
It uses python and had a mindblowing moment when I realized how the simulation I wrote connected to the world, making it one of the few I actually managed to finish. As you alluded to, the lecturers definitely hint that simpler code is easier to work with as the later stuff becomes impossibly complex with anything more.
edit: there's one called "#43 Diffusion (5/1/62)" here: https://www.feynmanlectures.caltech.edu/flptapes.html#restor... so I assume that