Skip to content

Making Connections

isee systems blog

Making Connections

  • About
  • More Connections
Search

Storytelling Simulations

Updated: June 23, 2009May 21, 2009Filed under: Modeling Tips1 Comment

Storytelling is a powerful feature that provides precise control over the presentation of a model to your audience. It also allows kiosk-style presentations to be created that step through the model, explaining it piece-by-piece. Many people use it only for this purpose, but storytelling offers so much more.

Because a basic premise of System Dynamics is that structure and behavior are linked, one of the key ideas behind storytelling is to allow the behavioral story to grow as the structural story unfurls. To create this effect, we neutralize structure that is not showing. This is extremely powerful because it allows you, for example, to selectively show the behavior of different loops within the system.

A simple example will solidify this concept. Consider the following simple population model:

population-model

The death rate multiplier is a simple resource constraint on the growth of population. More complex constraints would also affect the birth rate.

This model can be sequenced into a very meaningful structure/behavior story. The storyboard with the corresponding graph of Population for each story panel is:

population1
population2

population3

population4

population5

death rate multiplier = Population/INIT(Population)

Note how the behavior of the model changes as more of the structure becomes extant, and especially as more loops are closed. This is something that cannot be done with, for example, Run by Modules or Run by Sectors.


How Run by Modules/Sectors Operates

These latter two run options work identically. When you run a set of modules (or sectors), inputs from modules that are not running are held at their initial values. Flows across the boundary act as if there is a cloud at whichever end is not in the running module. If sectors are placed around the different pieces of structure in this story and Run by Sectors is used, the behavior is identical (the second to last graph) for all steps but the last.


How Running Under Storytelling Operates

In storytelling, entities that are not visible are essentially removed from the model. The program neutralizes them by setting them to either zero or one based on how they are used in each visible entity’s equation. If there is a either a “+” or a “-” in the visible entity’s equation, the invisible entity will evaluate to zero in that equation. Otherwise, it will evaluate to one in that equation. You can override this default behavior for each entity in the storytelling dialog. In addition, flows that have none of their inputs shown can also be set to default values by hovering over them and typing in a value. This is how births and deaths were set in the first two panels of the story.

Let’s look at a few simple examples to get the feel of it. Let a = 5, b = 7, and c = 2.

The story panels below show the values of x under these scenarios of visible and invisible entities.


x = a + b:

The equation is additive, therefore entities not shown are set equal to 0

Visible Entities a-and-b1 a-and-b2 a-and-b3 a-and-b4
Values a = 0, b = 0 a = 5, b = 0 a = 0, b = 7 a = 5, b = 7
x 0 + 0 = 0 5 + 0 = 5 0 + 7 = 7 5 + 7 = 12


x = a*b:

The equation is multiplicative, therefore entities not shown are set equal to 1

Visible Entities a-times-b1 a-times-b2 a-times-b3 a-times-b4
Values a = 1, b = 1 a = 5, b = 1 a = 1, b = 7 a = 5, b = 7
x 1*1 = 1 5*1 = 5 1*7 = 7 5*7 = 35


x = (a + b)*c:

The equation is treated as additive because it has a + symbol, therefore entities not shown are set equal to 0

Visible Entities a-and-b-times-c1 a-and-b-times-c2 a-and-b-times-c3 a-and-b-times-c4
Values a = 0, b = 0, c = 0 a = 5, b = 0, c = 0 a = 0, b = 7, c = 0 a = 0, b = 0, c = 2
x (0 + 0)*0 = 0 (5 + 0)*0 = 0 (0 + 7)*0 = 0 (0 + 0)*2 = 0
Visible Entities a-and-b-times-c5 a-and-b-times-c6 a-and-b-times-c7 a-and-b-times-c8
Values a = 5, b = 7, c = 0 a = 5, b = 0, c = 2 a = 0, b = 7, c = 2 a = 5, b = 7, c = 2
x (5 + 7)*0 = 0 (5 + 0)*2 = 10 (0 + 7)*2 = 14 (5 + 7)*2 = 24

The value of the invisible variables is zero in the first and last cases, and one in the middle case. The last case is treated as additive by default because there is a plus sign. This may or may not give the result desired.

It is possible to override the default behavior in the storytelling dialog (by selecting the entity and using the “+ -> *” button at the bottom), though this may not be desired depending on the application. However, to ensure the desired result by default, separate such expressions into their additive and multiplicative components. In this case, add a converter d = a + b and make x = d*c. In this way, x will only be zero when both a and b are invisible.

The following story panels show the values of x under these scenarios of visible and invisible entities.


x = (a + b)*c overridden to be multiplicative:

The default additive behavior is overridden to be multiplicative in this case and therefore the entities not shown are set equal to 1

Visible Entities a-and-b-times-c-over1 a-and-b-times-c-over2 a-and-b-times-c-over3 a-and-b-times-c-over4
Values a = 1, b = 1, c = 1 a = 5, b = 1, c = 1 a = 1, b = 7, c = 1 a = 1, b = 1, c = 2
x (1 + 1)*1 = 1 (5 + 1)*1 = 6 (1 + 7)*1 = 8 (1 + 1)*2 = 4
Visible Entities a-and-b-times-c-over5 a-and-b-times-c-over6 a-and-b-times-c-over7 a-and-b-times-c-over8
Values a = 5, b = 7, c = 1 a = 5, b = 1, c = 2 a = 1, b = 7, c = 2 a = 5, b = 7, c = 2
x (5 + 7)*1 = 12 (5 + 1)*2 = 12 (1 + 7)*2 = 16 (5 + 7)*2 = 24


x = d*c, where d = a + b:

The equation behavior for x is multiplicative and for d it is additive. Entities that are not shown and inputs to x will be set equal to 1. Entities that are not shown and inputs to d will be set equal to 0.

Visible Entities d-times-c1 d-times-c2 d-times-c3 d-times-c4 d-times-c5
Values d = 1, c = 1 d = 1, c = 2 a = 5, b = 0, c = 1 a = 0, b = 7, c = 1 d = 1, c = 2
x 1*1 = 1 1*2 = 2 (5 + 0)*1 = 5 (0 + 7)*1 = 7 1*2 = 2
Note a and b are not evaluated a and b are not evaluated













a and b are not evaluated
Visible Entities d-times-c6 d-times-c7 d-times-c8 d-times-c9 d-times-c10
Values d = 0, c = 1 a = 5, b = 7, c = 1 a = 5, b = 0, c = 2 a = 0, b = 7, c = 2 a = 5, b = 7, c = 2
x 0*1 = 0 (5 + 7)*1 = 12 (5 + 0)*2 = 10 (0 + 7)*2 = 14 (5 + 7)*2 = 24
Note a and b are not evaluated


















Behavior of Ghosts Under Storytelling

Finally, ghosts behave the same, irrespective of whether their parent is visible. This means all the above rules apply, which can sometimes be confusing. For example, if a stock called Population initialized to the constant 100, the story below does what is expected: the ghost of Population will equal 100.

ghost1

However, in the story below, the behavior is not very likely to be what is expected. If death rate is a constant, there will be no surprises. However, if death rate depends on other variables, as in the example at the beginning of this post, you may be very surprised by the results. In that case, death rate was determined by multiplying two other variables, so it will evaluate to one in this story. To make it evaluate to a more meaningful value, you must also include some of its inputs in this story panel (as was done in that story). This is true, by the way, whether death rate is a ghost or not.

ghost2

The simulation rules for storytelling can sometimes lead to confusing results, especially in larger models. Hopefully, this post clears up much of the confusion and allows you to build more effective behavioral stories.

Modeling Tips
  • iThink/STELLA
  • software
  • storytelling

Post navigation

Previous Post:

Insight-based Model Investigates the Housing Crisis

Next Post:

We are on Facebook

About the Author

Karim Chichakly

Co-President

All posts byKarim ChichaklyWebsite

Hide

Categories

  • Education (4)
  • isee NetSim (3)
  • isee.NET Framework (1)
  • Modeling Tips (32)
  • News & Announcements (15)
  • STELLA & iThink (14)
  • Stories from the Field (5)
  • Systems Thinking (8)
  • Training (6)

Archives

Browse by keyword

2D array archetypes arrays Barry Richmond Bass diffusion builtins calibration Causal Loop CLD command line conferences crisis data diffusion Education environment export game graphical function h1n1 healthcare housing import iThink/STELLA market dynamics MODSIM modules mortgage netsim optimization Physics policy price releases scholarship software spatial Stella storytelling System Dynamics Society Systems Thinking Version 9.1.2 video webinar workshop

Recent Posts

  • COVID-19: Modeling Distributions of Incubation and Recovery Times April 1, 2020
  • Multiobjective Optimization January 9, 2018
  • Optimizing Model Performance December 22, 2017
  • Calibration in Stella® December 15, 2017
  • Drifting Goals March 9, 2016

RSS System Dynamics Forum

  • Closing Learning Gaps with Systems Thinking Education
  • How to Review for the International System Dynamics Conference 2025
  • Accelerating Sustainability Education with System Dynamics: A Community-Based Strategy
  • System Dynamics in Policy Design: A Case Study from India’s Renewable Energy Sector

Recent Comments

  • best apps review on About
  • digital software on Modeling the Economic Crisis
  • Mishawaka Indiana on What are “Mental Models”?
  • La Paz Indiana on XMILE – An open standard for system dynamics models
  • Bristol Indiana on Modeling the Economic Crisis

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Products
Software (v1.3)
  • Stella Architect
  • Stella Professional
  • Stella Designer
  • Stella Simulator
  • iThink
  • Feature Updates
  • Policies
  • Publishing Options
  • License Agreement
Free Software
  • Stella Online
  • isee Player
  • Stella Architect Trial
Solutions
Consulting
  • Systems Innovation Practice
Common Applications
  • Business
  • Education
  • Research
  • Government
  • Energy
  • Health
  • Agriculture
  • Manufacturing
  • Conservation
Quick Links
About
  • isee systems
  • Systems Thinking
  • Barry Richmond Scholarship
Resources
  • Frequently Asked Questions
  • Product Help
  • Examples
  • Request Support
  • Request Quote
  • Systems in Focus
  • Quick Tips
  • Legacy Tutorials
News and Events
Upcoming Workshops
  • Introduction to Dynamic Modeling
  • Whole Systems Partnership
Newsletter
  • The Connector
Recent Webinars
  • Model Mysteries
Recent Training
  • Systems Thinking Practice
Press Release
  • Stella Architect Release

  Phone: (603) 448-4990   Email: info@iseesystems.com

   Monday - Friday: 9:00 am - 5:00 pm EDT | Saturday - Sunday: Closed
Wheelock Office Park | 31 Old Etna Rd, Suite 7N | Lebanon, NH 03766 | US

isee systems inc. holds registered trademark rights over the following: iThink®, STELLA®, Stella®, isee systems® and claims the following trademarks; isee NetSim™, Stella Live™, Causal Lens™ and Stella Online™.

Terms of Use

© 2017. isee systems inc . All rights reserved.