Fast and general toolbox for simulation of complex adaptive systems written in cython. It provides:
- Fast general modeling framework for many classical dynamics (see docs)
- Readable
- Coding for humans. Leverages cython readability and allows for free development in python
- Extensability
- Extensions can be written in python or cython directly
- Quick development time
- quickly implement an idea in python and slowly convert the problem to cython (compiled-based)
- Graph-based
- Simulate your favorite dynamics on any networks structure
- Graph-free
- For spatio-temporal models the framework allows for using agent-based simulation free of static structures
N.b. this is a work in progress. Docs are hosted here, please see the quickstart in the docs.
Example systems. Each subplot contains a lattice graph (64x64 = 4096 nodes) simulated for different dynamics. See the docs page the available models.
- Clone the repo
git clone git@github.com:cvanelteren/PlexSim.git && cd Plexsim
- Install the requirements
pip install --file requirements.txt
Current versions are developed on linux
.
It is known that compiling with cython on mac is difficult due to the gcc
compiler being replaced with clang
on apple. This toolbox depends on openmp
and this could cause problems on MacOS.
The codebase is tested and developed on gcc = 10.2.0
; higher versions give
symbol errors at the time of writing.
PlexSim is released under the GNU-GPLv3 license
Powered by
Cannot have static pyobjects, this causes a segfault in pybind11. Use atexit for cleaning them up.