Agent Based Modelling (ABM) is a method for testing the collective effects of individual action selection. More generally, ABM allows the examination of macro-level effects from micro-level behaviour. Often in science we want to understand how an observed characteristic of a system (e.g. a solid) can be accounted for by its components (e.g. molecules). In ABM we build models of both the components and the environment they exist in, then see whether the over-all system-level behaviour of the model matches that of the target (or subject) system.