Hi, I wrote a research/educational article in Dash that uses agent-based modeling (ABM) to simulate residential segregation.
Programmers and computer scientists should love ABM because it’s basically about trying to build a computer simulation of the world! One of the very first applications of ABM was from the 1970s when economist Thomas Schelling built a model to “explain” why we might see racial segregation patterns across housing (he later won the Nobel Memorial Price in Economics).
To a very large degree, my presentation is inspired by distill.pub. The idea is that plain text research articles can be made much better when we use webpages as the medium and are able to add interactivity, animations, and the like.
I used Dash to add interactivity to my article in several ways:
- Panels that present the same content at varying levels of complexity
- Interactive visualizations that give examples of how calculations are done
- Interactive charts
- Animated visuals
In comparison to other websites about “Schelling segregation”, I also think that Dash allowed me to construct a modern looking website. Some of the other websites on the topic are perfectly functional, but they also look very dated.
An obvious feature upgrade to my app would be to add a “simulation calculator” where users can enter their own parameters and run a simulation. That was my original intent but frankly the project has already consumed much more time than I wanted and, in practice, no matter how you change the parameters the ultimate results are pretty much the same.
For anyone who’s interested, all my code is available in Github for both the dash app itself as well as for the underlying ABM simulation code.