The Agent-Based Model (ABM) at the heart of SIMOC has been rewritten from scratch for consistency and speed. Over the years, many individuals had contributed to the SIMOC ABM, each bringing their own programming skills and vision for how SIMOC could develop into the future. Now, as we take SIMOC open-source, it’s a good time to remove inconsistencies and establish norms going forward.
Some key features of the updated ABM are:
- A single agent schema is used throughout the entire application: defining the agent, defining the configuration, initializing the ABM, exporting data and saving the ABM. This will greatly reduce the learning curve for new-comers.
- All agent parameters are stored as either `properties` (static, e.g. ‘harvest_ratio’) or `attributes` (dynamic, e.g. ‘daily_growth_factor’). Besides streamlining the code, this will make the SIMOC web app compatible with custom agents out-of-the-box.
- Unit testing and documentation are incorporated from the start.
We’re seeing up to 85% speedup for large simulations, meaning it’s much faster for users and the demand on our servers is lower.
Altogether, the new ABM is a tremendous upgrade for our users, and puts us on a better footing for long-term growth and collaboration.