# Experimenting with Agent-Based Model Simulation Tools
## 3 ABM Tools Overview
### ABM Tools Description  
_ActressMAS_[40] is an agent-based framework written in.NET with the primary objective of being simple to learn and easy to use. ActressMAS is designed to allow the user to focus on the model logic rather than learning the framework, enhancing its accessibility at the expense of performance. According to its developers, ActressMAS should be used for applications that do not require fast execution speed or do not include a considerable number of agents. _AgentPy_[41] is an open-source Python library for developing and analyzing ABMs integrated with IPython and Jupyter Notebooks, a web-based interactive development environment. AgentPy is designed for scientific applications and provides features for model exploration, numeric experiments, and advanced data analysis. The library offers functionalities to easily create models and their visualization that can be embedded within Jupyter notebooks. Moreover, AgentPy allows the modeler to run simulations in a parallel environment without writing parallel code. _Agents.jl_[42] is a recent framework for agent-based simulations for implementing, running, and visualizing models exploiting the Julia programming language. This framework is mainly centered on granting efficiency and ease of use by exposing methods that allow the user to develop models with few lines of code. Agents.jl is available as a Julia library and is easily usable with the plethora of analytical tools of the Julia ecosystem. It offers the most common ABM-related features, including different environments, support for GIS data, and model exploration capabilities. Agents.jl also supports parallel and distributed computing to empower simulation execution. _Care HPS_[43] is a C++ tool for modeling and executing ABMs on high-performance architectures while hiding the complexity of parallel and distributed programming. The tool abstracts the modeler from crucial and tricky tasks such as agent distribution, load balancing, and synchronization. Still, Care HPS remains easily extensible by expert developers. _Cormas_ (Common-Pool Resources and Multi-Agent Systems) [44] is a simulation platform based on the VisualWorks programming environment and the Smalltalk language. This platform is mainly dedicated to non-computer scientists and offers facilities to build, design, and analyze ABMs; however, it exchanges this ease of use with limited efficiency and scalability. Cormas editor allows the user to define agent behaviors through activity diagrams without including sophisticated features to keep its interface as simple as possible. _CppyABM_[45] is a library for ABM development that combines the efficiency of C++ with the availability of Python libraries and exploits CMake to be platform-free. CppyABM offers all functionalities in both languages, enabling users to choose their preferred programming language. CppyABM relies on third-party packages to provide additional functionality while remaining a lightweight library. Other Python or C++ libraries can be installed separately and integrated into CppyABM. _EcolLab_[46] is a framework for developing ABMs in C++ and executing them using TCL (Tool Command Language). This tool provides a GUI through the Tk toolkit and supports parallel and distributed processing by exposing utilities to manage communication. The user has to handle synchronization and partitioning manually. _Evoplex_[47] is a platform for developing ABM based on C++, using CMake scripts to facilitate compilation and setup, thus making it cross-platform. Evoplex adopts a fully modular approach that separates the core library from the GUI and visualization tools. The APIs exposed by the core library allow the user to develop the model. At the same time, additional components are available to improve ease of use with an interactive GUI and a web visualization tool. _FLAME_ (Flexible Agent Modeling Environment) [48] is an agent-based modeling system for creating models runnable on most computing systems, ranging from laptops to HPC supercomputers.