This is a monorepo containing code for the EpiRust framework -
Note: We are no longer maintaining the Web UI for EpiRust which allows you to trigger simulations and grid visualization for upto 1000 agents. Hence, it has been removed from here. Please refer sims2020 branch for web.
The quickest way to run the application is using the CLI interface on the engine. Follow the docker or local setup to get the engine up and running.
Prerequisites:
docker build -t epirust-engine -f ./engine-app/Dockerfile .
docker run --rm --name epirust-engine epirust-engine /bin/sh -c './epirust-engine -c config/default.json && ls *.csv'
docker cp epirust-engine:/home/nonroot/app/<CSV_FILE> .
Prerequisites:
cmake
(version 3.16.4 or later). Installation instructions will depend on your platform. On MacOS you can install it using brew install cmake
. Refer to https://cmake.org/download/ca-certificates curl file build-essential autoconf automake autotools-dev libtool xutils-dev cmake pkg-config libfreetype6-dev libfontconfig1-dev xclip
pandas
and matplotlib
libraries which can be installed using pip
or conda
.
pip install pandas matplotlib
To run in standalone mode, run this:
RUST_LOG=info cargo run --bin engine-app -- -i <engine-id> -c path/to/simulation-config
engine/plot
directory
engine
directorypython plot/plot.py --data-path <PATH_TO_CSV_FILE>
- this will plot the csv you provide.Sample output:
You can run EpiRust for multi-region simulations (e.g. to simulate a group of cities). This will require the orchestrator, and each engine representing a region. The architecture page on the wiki describes how this works at a high level.
Steps for running a multi-region simulation:
orchestrator/config
directory for examples of the configuration.It will generate output CSV and JSON files which you can use to for analysis and charting.
EpiRust is an open source project licensed under AGPL v3