Insight Maker is a multi-method modeling solution packaged within a fluid and cohesive software environment.

At one level, you can use Insight Maker purely to map out conceptual models: using casual loop diagrams or rich pictures to describe a system. In this mode, Insight Maker functions as a powerful diagraming tool that lets you illustrate a model and then easily share it with others.

Once you have a model diagram created, you can start to add behavior to the different components using Insight Maker's simulation engine. Insight Maker supports two different modeling paradigms that together can describe most of the models you could imagine:

**System Dynamics**: System Dynamics (sometimes called differential equation modeling or dynamical systems modeling) concerns itself with the high-level behavior of a system. It helps you understand the aggregate operations of system on a macro-scale. It is great for cutting away unnecessary detail and focusing on what is truly important in a model.**Agent Base Modeling**: Agent Based models allow you to model individual agents within a system. Where in System Dynamics you might only look at the population as a whole, in Agent Based Modeling you can model each individual in the population and explore the differences and interactions between these individuals.

System Dynamics and Agent Based Modeling complement each other. In Insight Maker you can use either approach or integrate both of them together into one seamless model. To understand the pros and cons of an Agent Based Model versus a System Dynamics model, we can explore how these two techniques might approach the same problem: modeling the spread of an infectious disease in a population.

For this example, let us model the spread of a disease such as the flu. We can classify people in this model as being in one of three states:

**Susceptible**: Healthy and susceptible to catching the disease**Infected**: Infected with the disease and able to spread it to susceptible individuals**Recovered**: No longer infected with the disease and temporarily immune to the disease (for diseases like the flu, a temporary immunity will be conferred after infection which will fade with time)

The commonly used acronym to describe this type of model -- SIR -- comes from the initials of these three states.

Individuals will move between the three states: moving from susceptible to infected to recovered and back to susceptible. The movement from susceptible to infected will be governed by some infection rate equation that takes into account the status of currently infected individuals. The movement from infected to recovered and back to susceptible will be governed by the average duration of the disease and the average duration of the immunity conferred by it.

Using the System Dynamics methodology, we model each of the three states using a Stock primitive that stores the number of individuals currently in that state. So, for instance, we have a Susceptible Stock storing the portion of the population that is currently in the susceptible state. We then use Flows to move individuals between the Stocks based on different factors. For instance, for the flow moving individuals between the Infected and Recovered Stocks, we would use an equation such as *[Infected]*1/[Average Infection Duration]*. If the average infection duration was ten days, this would move roughly 10% of the infected population every day.

The following embedded model illustrates the full System Dynamics implementation of this model. Please note the smooth aggregate curves in the resulting simulations.

To create the Agent Based Modeling implementation of this disease model, we first create an agent definition that defines the behavior of a single individual in our model. We use three State primitives in this model, one to represent each of the three disease states a person can be in. We connect these states with Transition primitives that instruct how a single individual moves between the states. Where in the System Dynamics models we had flows with rates, in the Agent Based models there are transitions that are given probabilities. These probabilities determine when the transition will be activated and the agent will switch states.

The Agent Based approach allows us to implement features in this model that would simply be impossible using System Dynamics. For instance we can look at the geographic proximity of agents and use this to affect our transmission probability. Susceptible agents that are closer to infected agents are more likely to become sick than those that are farther away. Similarly, we could look at social structure: how the connections between agents will influence their probability of coming into contact with the infection and falling ill. All this would simply not be possible to look at using System Dynamics.

The following embedded model illustrates the full Agent Based Modeling implementation of this model. An added twist included here is that the susceptible agents will actually try to run away from the infected agents!

Insight Maker supports System Dynamics modeling: a powerful method for exploring systems on an aggregate level. By "aggregate", it is meant that System Dynamics models look at collections of objects, not the objects themselves. For instance, if you created a model of a water leakage from a bucket, a System Dynamics model would concern itself with the quantity of water as a whole, not with individual droplets or even molecules. Similarly, if you were modeling a population of rabbits, the System Dynamics model would look at the population as a whole, not at the individual rabbits.

System Dynamics models are constructed from a set basic building blocks also known as "primitives". The key primitives are Stocks, Flows, Variables and Links.

Stock | Stocks store a material. For instance a bank account is a Stock that stores money. A bucket is a Stock that stores water. A population is a Stock that stores people. |
---|---|

Flow | A Flow moves material between stocks. For instance, in the case of a bank account you could have an inflow of deposits and an outflow of withdrawals. |

Variables | Variables are dynamically calculated values or constants. In the bank account model you could have a Variable representing the interest rate. It could be a fixed value or be governed by an equation that changed over time. |

Links | Links show the transfer of information between the different primitives in the model. If two primitives are linked, they are related in some way. |

From these basic primitives, and the others supported by Insight Maker, you can build both simple and complex models in a straightforward manner. Models related to ecology, policy, business, or many other fields are all possible. As an example of a simple model built using the System Dynamics features of Insight Maker, below is an embedded model showing the interactions between wolves and the moose they prey on at the Isle Royale in the Great Lakes. This model shows very interesting oscillatory behavior as the two species interact over time.

System Dynamics modeling is sometimes referred to as dynamical systems modeling or, simply, differential equation modeling as differential equations are at the heart of the technique.

Agent Based Modeling simulates individuals. For instance, if we were to simulate a population, we would have a separate agent for each individual in that population. Each of these agents would have a set of attributes that defined their state. For instance, if we built a predator-prey model, each of the predators might have two states "Hungry" and "Satiated". Which of these two states an agent was in would affect its behavior with the hungry predators seeking prey while the satiated predators would be content to stay where they were.

Insight Maker's Agent Based Modeling supports two types of spatial structure: geographic structure and network structure. Using geographic structure, you can give a position to each agent (as an x, y coordinate). The agents may then interact based on their positions. For instance, an agent may look to find the closest agent to it and then respond in some appropriate way. Agents may also be scripted to move in this geographic space. Network structure represents the connections between agents. Imagine a social network where each agent may have a set of friends and who they know will affect their behavior. This network structure can be dynamically rewired by the model over the course of the simulation.

The following embedded model is a simple illustration of an Agent Based model. It shows the interactions between two types of agents: a consumer and patches of ground. Think of this as illustrating an orchard. Each patch represents a clump of trees that are either fertile (they have fruit) or infertile (they do not have fruit). The consumer agents will move around the orchard seeking fruit trees. When they find a fertile patch they will consume all the fruit, converting it to an infertile patch. Over time, infertile patches will be converted to fertile patches as new fruit matures.