If you can forgive me for departing from the tradition established by 11 comments all talking about the card suit in the title, Agents.jl is a powerful package. I just used it to research a problem in simulated biological evolution, and it did the job wonderfully. You can define the behavior of your agents and their interaction with the environment at a high level, and Agents.jl will take care of the details, such as enforcing boundary conditions, creating ensembles, etc. And it’s fast, and visualization is easy. (I haven’t actually read the article yet.)
BTW, you can use emoji in Julia code, see e.g. https://github.com/StefanKarpinski/Cards.jl, as well as other unicode characters. You can enter help mode in REPL (by pressing `?`) and paste the character to see how you can type it.
Agent-based modeling looks like an interesting topic, something ripe for fun little side projects. The short (three paragraph) "Crash course on agent based modeling" [1] from the package docs gave me an idea of why ABM is useful. And scrolling through the example model [2] kinda answers what conveniences the package gives me, over implementing the simulation myself.
Has anyone here used ABM for a serious project? Fields like economics and sociology are mentioned, but how prevalent is Agent-based modeling in those fields in practice?
I've done quite a bit for archeology and it's moderately prevalent in the literature. You can implement simple simulations yourself without much effort or use one of the many environments like NetLogo that provide out of the box support. They're best used like thought experiments that are too big to keep in your head, in my experience. Done well, they illuminate dynamics that weren't necessarily obvious at the beginning that you can circle back on with other methodologies.
However, there are some downsides. It's an art to make interesting, simple models that don't evolve to a steady state in some way. You can get around this with more variables , but that's aesthetically unsatisfying. You can also increase the resolution of the simulation, but at the high end you have trouble getting enough data and writing the simulation can take years of effort (e.g. Village ecodynamics project). Using them predictively is also on shaky theoretical ground. Avoid doing that if possible.
ABM can be used to model human movement. In our project at university we used it to model how people evacuate a building in case of a fire. I remember seeing (I think on Nat Geo) how stampedes/crowds could be modeled/avoided at concerts etc.
That's a list of publications from the NetLogo people. Shows quite a few publications on both educational applications (using ABM for teaching students about various topics and modeling) and for serious applications. Annoyingly, none of them are links to papers but a web search should find most of them.
At first, I thought it was some fashion modeling agency spam from some girl named Julia that got into the front page. The title is still in my opinion click-baity...but worth reading :D