[In progress and not complete]
This is a from-scratch implementation in Elixir of the sugarscape and its various models as found in the book Growing Artifical Societies: Social Science from the Bottom Up by Joshua M. Epstein and Robert L. Axtell.
The core code is implemented as an Elixir Mix project, and then the visualization is done via Livebook notebooks. Agents and resources are placed on the sugarscape environment. Each of the agents, resources, and environment are given rules that govern their own behavior and interactions with the other components.
Here is a short video example that shows agents moving around on an environment with only sugar resources, eating them as they come across them, moving to areas with sugar, and the environment growing sugar back. In this particular example, agents have individual vision distance, metabolic rate, initial unique location, and initial sugar holdings. The grid locations contain sugar resources which have a total holding capacity, growback rate, and current level.
2023-04-07.02.18.10.mp4
More documentation will be added later, mostly as Livebook notebook content.
If available in Hex, the package can be installed
by adding sugarscape
to your list of dependencies in mix.exs
:
def deps do
[
{:sugarscape, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/sugarscape.