cadCAD is shorthand for complex adaptive dynamics computer aided design, but that is quite a mouthful.

if you click through to the cadCAD github repo you will find the following description

cadCAD (complex adaptive systems computer-aided design) is a python based, unified modeling framework for stochastic dynamical systems and differential games for research, validation, and Computer Aided Design of economic systems created by BlockScience. It is capable of modeling systems at all levels of abstraction from Agent Based Modeling (ABM) to System Dynamics (SD), and enabling smooth integration of computational social science simulations with empirical data science workflows.

This may be an accurate description of what cadCAD is but it doesnâ€™t give one much clarity about how to use it or even what to use it for. One reason why it can be difficult to get started with cadCAD in python is because coding is not a good starting point for a systems design journey. Computer aided design is about design, and one needs to have clarity about what they are designing. In particular, cadCAD is for designing complex systems, which are characterized by adaptive dynamics which may include changes to system properties based on system state or changes in the way agents behave. The first step is system modeling. See https://community.cadcad.org/t/working-glossary-of-systems-concepts/17

Modeling system level properties using differential equations is called System Dynamics (SD) whereas modeling the way agents behaviors interact is called Agent Based Modeling (ABM). There are tools available for modeling in each of these paradigms but the paradigms themselves can be limiting. It is challenging to represent the adaption of system level properties in an agent based modeling framework, and it is difficult to represent agent level behavioral evolution within the systems dynamics paradigm. When systems have both of these characteristics concurrently, the model can be called Multi-Scale Models.

Multi-scale modeling is hard in part because it is more general; in practice multi-scale modeling is done for specific classes of systems using tools customized to the those systems properties. For example, one can find applications in fluid dynamics using partial differential equations to create multi-scale models using Matlab. With cadCAD one doesnâ€™t need an expensive closed source software like MATLAB, instead models are built within the open source python data science stack. Data Science tooling is particularly relevant because the systems in focus are social and economic networks rather than physical systems.

For more introductory material check out our Medium articles: