mirror of
https://github.com/JHUAPL/kami.git
synced 2026-01-09 14:58:02 -05:00
71 lines
2.7 KiB
Markdown
71 lines
2.7 KiB
Markdown
[](https://github.com/JHUAPL/kami/actions/workflows/build-main.yml)
|
|
[](https://github.com/JHUAPL/kami/actions/workflows/build-develop.yml)
|
|
[](https://kami.readthedocs.io/en/main/)
|
|
[](https://github.com/JHUAPL/kami/releases)
|
|

|
|
[](https://doi.org/10.5281/zenodo.6975259)
|
|
|
|
# Kami is Agent-Based Modeling in Modern C++
|
|
|
|
Agent-based models (ABMs) are models for simulating the actions of
|
|
individual actors within a provided environment to understand the
|
|
behavior of the agents, most individually and collectively. ABMs
|
|
are particularly suited for addressing problems governed by nonlinear
|
|
processes or where there is a wide variety of potential responses
|
|
an individual agent may provide depending on the environment and
|
|
behavior of other agents. Because of this, ABMs have become powerful
|
|
tools in both simulation and modeling, especially in public health
|
|
and ecology, where they are also known as individual-based models.
|
|
ABMs also provide support in economic, business, robotics, and many
|
|
other fields.
|
|
|
|
## Compiling
|
|
|
|
```Bash
|
|
|
|
# Build, test and install the library
|
|
git clone https://github.com/k3jph/kami.git
|
|
cd kami
|
|
conan install -if build .
|
|
cmake -B build -DBUILD_SHARED_LIBS:BOOL=FALSE
|
|
cmake --build build
|
|
cmake --build build --target test
|
|
cmake --build build --target install
|
|
```
|
|
|
|
## Conan Package Manager
|
|
|
|
This library comes with a `conanfile.py` to build it into a Conan package so that
|
|
it may be used by external applications/libraries.
|
|
|
|
### Create Conan Packages
|
|
|
|
Creating a Conan package is relatively easy. Simple cd into the source directory
|
|
and execute the conan create function.
|
|
|
|
```bash
|
|
git clone https://github.com/k3jph/kami.git
|
|
cd kami
|
|
|
|
conan create . kami/develop
|
|
```
|
|
|
|
## Direct Dependencies
|
|
|
|
* [CLI11](https://github.com/CLIUtils/CLI11)
|
|
* [Google Test](https://github.com/google/googletest)
|
|
* [neargye-semver](https://github.com/Neargye/semver)
|
|
* [spdlog](https://github.com/gabime/spdlog)
|
|
|
|
CLI11 and spdlog are both used extensively in the examples.
|
|
Neither is used directly by the Kami library.
|
|
|
|
## Contribution guidelines
|
|
|
|
* Use [GitFlow](http://nvie.com/posts/a-successful-git-branching-model/)
|
|
* Use [Google Test](https://github.com/google/googletest)
|
|
|
|
## For more information
|
|
|
|
* James P. Howard, II <<james.howard@jhu.edu>>
|