Features

Insight Maker is a powerful simulation tool that runs right in your web browser. Best of all, it's completely free! Insight Maker supports the following features and more:

Building Models
Use Insight Maker to start with a conceptual map of your Insight and then convert it into a complete simulation model. Insight Maker supports extensive diagramming and modeling features that enable you to easily create representations of your system.
System Dynamics Modeling
Causal Loop Diagrams
Stock and Flow Models
Graphical Inputs
Ghosting Primitives
Vectorizing Primitives
Extensive Units Support
Agent Based Modeling
States and Transitions Diagrams
Custom Actions
Spatial Relationships
Network Relationships
Diagraming and Rich Pictures
Extensive Styling Features
Custom and Built-in Library of Pictures
Folding and Unfolding of Portions of Diagram
Storytelling
Loop Identification
Run Models
Insight Maker supports powerful simulation methods that rival many commercial programs. With Insight Maker you can use System Dynamics modeling, Agent Based Modeling or integrate the two methods seamlessly.
Results
Times Series and Scatterplots/Phase-Planes
Maps and Network Diagrams
Tables Data Export to CSV
Time Machine Analysis
Functions and Programming
Large Library of Built-In Functions
User Created Macros and Functions
Procedural Programming
Functional Programming
Object-Oriented Programming
Simulation Algorithms
Euler's Method
4th Order Runge-Kutte Method
Advanced
Sensitivity Testing
Model Scripting
Built-In Optimizer
Sharing Models
Insight Maker has extensive capabilities for sharing your models with others. Just send them a link or embed your model in your website or blog. Also, you can give others access to your models so they can work on them collaboratively with you right in their own browsers.
Sharing
Send Model Link
Embed Model in a Web Page
Publish Model as Web Page
Access Control
Enable Shared Editing
Make Insights Private or Public
CostFree!

Types of Modeling

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.

An Example: SIR Disease Model

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.

System Dynamics Implementation

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.

Agent Based Implementation

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!

System Dynamics

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.

StockStocks 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.
FlowA 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.
LinksLinks 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

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.


Collaborate and Share

Insight Maker runs on the Internet and so sharing Insights could not be easier. Want to let a colleague view your model? Simply send them the same link you use to edit the model. They'll be able to use this link to view and run the model right in their web browser.

Access Controls

This link will not allow them to edit the model, though. Do you want to give them the ability to edit the model so you can collaborate together? Simply edit the Insight's properties and grant your colleague the edit permission.

By default, everything in Insight Maker is public. As soon as you make a change to an Insight, it is pushed out to the world for anyone to see. All Insights will be indexed and categorized by Insight Maker so others can find them and can contribute to them. However, if you would prefer to keep an Insight under wraps for a bit, you can do so by making it private. Once you are ready to share it with the world, simply make it public again and it will be indexed by Insight Maker.

Embedding Insights

In addition to sending links to people with your insights, you can also directly embed them in your webpage or blog. Simply use Insight Maker's "Embed" feature and paste the specified HTML code into your blog. Then people will be able view and run your Insights right where you want them to.

Here is an example of an embedded Insight:

It really is that easy!

Free and Open Source

Insight Maker Free

Insight Maker is free to use. It is free to build a model, it is free to run a simulation, it is free to embed the model in your blog or website. We make Insight Maker free because we strongly believe that people who use it to explore important systems will be able to make better decisions that will benefit us all.

Insight Maker is Open Source

In addition to being free, Insight Maker is an open-source project. Want to see what algorithms are used to run your model? Just take a look at the source files. Insight Maker's source-code may be used and modified as covered by the terms of the Insight Maker Public License.

External Packages

Insight Maker uses a number of third party packages including:

The copyrights for these packages are held by their respective authors and their use is governed by their respective licenses.

And special thanks to Jim Cameron for developing custom icons for Insight Maker. He is responsible for the great snowball and balance icons. Jim can be contacted at jimbcameron AT yahoo.co.uk