Approachable System Dynamics project video thumbnail
Replay with sound
Play with
sound
$5,271 pledged of $35,000 goal
backers
By Bobby Powers
$5,271 pledged of $35,000 goal
backers

About this project

The world wide web is the future, allowing information and ideas to spread like never before. It is time for system dynamics to become a first-class web citizen that integrates well with other technology.  My goal in this Kickstarter is to create a new platform for system dynamics which:

  • runs fast directly on the web (no downloads or confusing installation)
  • integrates seamlessly and professionally with other web tools
  • is totally free and user friendly (lowers the barriers to entry and sharing)

Sound interesting?  Read on!

Update (Dec. 25):

After some great discussions, I've added some additional items to the rewards. Everyone at the $10 reward level and above will get access to a 'behind the scenes/making of' video where you see the process behind making an SD engine.

Additionally, for the $50 reward level and above I am adding one-on-one consultation meetings. If you are new to system dynamics (SD), I can help you through making your first models on the website. If you are an experienced practitioner, we can work on making a website for your model, integrating it with other technology you're interested in, or talk about your thoughts and feedback for the future of the product. If you don't have a personal interest in SD we can practice English, or solve your general computer problems.

All existing supporters will get the above, along with new supporters. Merry Christmas and happy holidays :)

A system dynamics model drawn and simulated in the browser, integrated with other web technologies.  Click to run the demo yourself in Chrome, Firefox or Safari.
A system dynamics model drawn and simulated in the browser, integrated with other web technologies. Click to run the demo yourself in Chrome, Firefox or Safari.

What is System Dynamics?

System dynamics (SD) is a method for studying the complex systems that make up the world we live in. Systems ranging from sheep herding to national development planning can be explored with SD. What system dynamics brings is a focus on the feedback loops and time delays that produce the behavior of systems, and the visual representation systems.

The field of system dynamics recently turned 50, and has provided some amazing insights.  In the 1960s, Jay Forrester's Urban Dynamics model showed that contrary to popular belief, underemployed training programs and subsidized housing intensified rather than alleviated urban degeneration.  The popular Limits to Growth study explored the exponential growth of people and consumption in a world of finite resources.  Much of the work done using system dynamics methods is lower profile and more applied, but no less important.  For example, a few years ago the Mayo Clinic created a model to assist doctors with dosing regimens for patients, resulting in a 40% increase in patients with stable hemoglobin levels and a 25% reduction in hospitalizations.  That is an amazing outcome - lives improved and resources saved through system dynamics!  Imagine if more open software could make these profound insights more portable and easier to communicate!

George Richardson has a great introduction to the details of the methodology on the System Dynamics Society's website here.

The Project - Approachable System Dynamics

I want to enable the staggering breadth of existing system dynamics models and insights to spread at the speed of the web, and to drastically lower the friction and barrier-to-entry for creating and modifying SD models. To accomplish this I want to complete a pair of web-based technologies to be finished by the end of June, 2014:

  • An open-source library for displaying, running and exploring models in a web browser, with no reliance on plugins, desktop software to install or a specific web host.
  • A free, web-based model editor focused on traditional stock and flow system dynamics modeling. Accessible from web browsers on desktop computers, laptops, tablets and even phones, with nothing to install to get started.

If you are a system dynamics practitioner, then you know that you develop insight through the process of model building and model exploration.  Imagine being able to deliver fully interactive models to your clients or audience in a frictionless way, so that they can explore and build buy-in on their own time, on their own computers, tablets or phones.  That is a powerful proposition.  If you are new to system dynamics but are interested in what it has to offer, access to a free and open web platform so you can dig-in without up-front costs is pretty neat, too.

Library Details

I have already started on a Javascript library, called sd.js.  In the past month I've gotten it to the point where it can render existing stock-and-flow diagrams and simulate a number of real-world models.  The goal is to add the functionality to display, simulate, and modify most models created in proprietary softwares like Vensim and STELLA/iThink. Included in this is support for modules (sub-models), multi-dimensional arrays, and a live-simulation mode, similar to Vensim's SyntheSim, or isee systems's instasim.

All of this functionality is designed from the ground up to be easy to embed in ebooks & web sites, so that current practitioners can share their existing (and future) work with new audiences.

A model from the XMILE Xchange running on an Android phone
A model from the XMILE Xchange running on an Android phone

Currently, the following is done & working:

  • Simulates simple XMILE models in Firefox, Chrome and Safari
  • Displays stock-and-flow diagrams
  • Basic zoom + navigation
  • Simulate modules
  • Overlays simulation results on the stock and flow diagram
  • Several built-in functions

With this Kickstarter, I can complete what is next:

  • Display & edit equations
  • Unit checking
  • Internet Explorer simulation support
  • Runge-Kutta integration
  • Built-in live simulation (like SyntheSim and STELLA Live)
  • Multidimensional arrays
  • The rest of the common and uncommon built-in functions
  • Display modules & 'zoom in' to them
  • Documentation., both the API for programmer types, and higher level documentation for modelers looking to embed their models in ebooks or on websites.

Website Details

The library is the first step, but needs to be paired with a website where people can go to create new models or upload and share existing models, for free. No software download or plugin will be necessary. The models on the site can be downloaded in the emerging industry standard format, XMILE.

The web platform is still in the prototype phase.  It can currently create and open XMILE models, but doesn't have a web-interface for uploading existing models or modifying models yet:

A screenshot of the current prototype's model manager.
A screenshot of the current prototype's model manager.

The website features planned as part of this Kickstarter are:

  • Import Vensim MDL format models and STELLA/iThink v10 XMILE models
  • Start new models from scratch
  • Edit & share models
  • Export models in XMILE format

The goal is a minimalist web-based SD editing platform.  The site will go live at the end of the Kickstarter campaign in June 2014, but backers at the $25 tier and above will get exclusive pre-release access to the site as it is developed!  I have lots of ideas around collaboration and model reuse that I look forward to exploring in the future, and it is possible that some of these features will be made available on the platform at a reasonable but non-zero price.  However - SD model editing as outlined and funded here will always be free.

Fast New Tools: Standing on the Shoulders of Giants

Web technology has progressed at an amazing pace in the past two decades.  We can leverage all of that to take system dynamics to places we haven't even thought of yet.  The cornerstone of this is Javascript, the programming language that powers every major website from Gmail to Amazon.

Modern web browsers have gotten very good at running Javascript code quickly, usually turning it into native machine code on the fly (this is called just-in-time compilation).  We can take advantage of this by translating system dynamics models into JavaScript - enabling us crunch the numbers incredibly quickly.

There are a number of JavaScript libraries out there for visualizing data and ideas, and it seems like new ones are popping up every week.  As an example, I've integrated the current sd.js library I've been developing into a Prezi-like 3D presentation.  Click on the image below in Chrome, Firefox or Safari to try it yourself:

System Dynamics model integrated into other web technologies.  Click to run the demo yourself in Chrome, Firefox or Safari.
System Dynamics model integrated into other web technologies. Click to run the demo yourself in Chrome, Firefox or Safari.

The idea is to make it easy to combine system dynamics with other web technologies and enable people to create learning environments and interactions that weren't possible before, quickly.

Community Involvement & Kickstarter Rewards

I want this project to both help new people get involved with system dynamics and enable existing work to reach new audiences.  As mentioned above, the $25 rewards tier (and above) come with pre-release access to the free web-based modeling platform.  Additionally, the rewards starting at the $50 tier come with my commitment to explicitly test models of your choosing, to ensure your work (or models you find important) run correctly now and in the future.  There is also one-on-one internet-based consultations for these higher tier rewards.  Here is how it will work for backers, if this Kickstarter is funded:

  • I will send you an email with details about how to create an account on the website.
  • After you create an account, you will be able upload the model (or models) you want supported and tested as your reward, and schedule a time to meet.
  • As part of the upload process, you will have a chance to identify important indicator variables and choose whether you want this model public or kept private.
  • I will run your model in either Vensim or iThink, and export the data.
  • Next, I will add the model and reference data to either a public or private automated test suite, which will use the sd.js library to simulate your model and compare the results to the original data.
  • Before releasing new versions of the library or site, the test suites will be run to ensure we continue to simulate the results you expect.  Any regressions will be fixed before a release, so we can all sleep well with a high degree of confidence in upgrades.

In order to make this feasible on my end, there are a few model limitations:

  • Models with discrete entities and custom macros are outside the scope of this Kickstarter, unless the stretch goal is reached.  This is to keep the scope reasonable, rather than a value judgment - I would love to implement them eventually.
  • The entity count is the number of symbols listed in Vensim under Model Settings -> Info, or in STELLA/iThink under the Model Diagnostics dialog.
  • Vensim external functions are not supported.
  • The new sd.js engine uses double-precision floating point numbers, while standard Vensim uses single-precision numbers.  There may be some small numerical differences caused by this.

Stretch Goal: $50k

I have lots of ideas if we can raise additional funds!  There are several immediate extensions:

  • Discrete entities, like conveyors, queues and ovens.
  • Additional UI elements like sliders, pictures and text
  • Offline access to the modeling tool, letting you model and save your work without an internet connection.  This would probably use the HTML5 application cache, but browser extensions and Android/iOS apps would also be a possibility.
  • Broader model support and additional testing.  Specifically, testing and showcasing models off the Creative Learning Exchange site.
  • Support for XMILE and Vensim Macros.
  • Support importing models from additional proprietary software, e.g. Powersim and Anylogic SD models.
  • Export not only into XMILE, but back into Vensim MDL and the isee v10 XMILE variant.

If (and hopefully when!) we get near the main $35k goal, I will update this section with more details.

Licensing Matters

The sd.js library will be developed and released under the permissive MIT license.  This license gives you the right to use, modify, sell or distribute the sd.js library however you see fit - all you are required to do is include the sd.js copyright notice and a copy of the MIT license, which typically is contained in the sd.js file itself.  All of the simulation engine & display code is covered by this license, and only MIT or Apache-licensed 3rd party libraries will be used.  What does this mean?  Again, you can keep, modify and use the library for your models however you see fit, forever, where ever, without worrying about continuing fees, constraints, or gotchas down the road.

Licensing is the main reason I am not basing this work on Insight Maker.  Insight Maker has 2 licensing issues.  The first is that its model display code uses proprietary, commercial libraries, making it costly to set up an environment for private use.  The second is that the Insight Maker code itself is GPLv3 licensed.  This means that any work you incorporate Insight Maker into and distribute (like a custom website, or some solution for a consulting client) must be released in full and for free to the public under the same GPL license.  Starting from scratch avoids these issues, allowing me to provide something liberally licensed that can be used (and adapted) by anyone, for any purpose.  This includes other open source projects like Insight Maker or commercial products or consulting solutions I am not affiliated with.  It would be pretty neat to have an open source, well tested simulation engine that multiple vendors contributed to, of which this is the start.

My Background

I am half of the development team behind STELLA Modeler for the iPad, responsible for much of the user experience.  I have been involved in System Dynamics for the past 5 years, with a masters degree in it from the University of Bergen.  I've worked on a wide variety of System Dynamics software, including STELLA/iThink, Forio Simulate, a SD activity for OLPC laptops, and my masters thesis.  I am a member of the XMILE Technical Committee, helping to define a common file format for SD models.  Additionally, I've been involved in software development for over a decade, and involved with open-source software for the majority of that time.  For more details on my background and programming abilities, see bpowers.github.io.

Risks and challenges

System dynamics models and software have a rich vocabulary and set of features at this point. It's been said that individuals usually only use 20% of a programs features, but everyone uses a different 20%. Implementing some of the more esoteric SD features used by a few models could take more time than I am anticipating. With the experience in both system dynamics and software development I've accumulated over the past 5 years I am confident that the project scope I have outlined above is an achievable one.

Learn about accountability on Kickstarter

Questions about this project? Check out the FAQ

Support this project

  1. Reward no longer available

    Pledge $10 or more About $10

    So much thanks! Receive a personal thank-you, acknowledgement on the website, backers-only status updates, and that fuzzy feel-good feeling that you're helping SD grow.

    Less
    Estimated delivery
    Reward no longer available 3 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Select this reward

    Pledge $10 or more About $10

    So much thanks! Receive a personal thank-you, acknowledgement on the website, backers-only status updates, and that fuzzy feel-good feeling that you're helping SD grow. Exclusive access to a behind-the-scenes/making-of video

    Less
    Estimated delivery
    1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Select this reward

    Pledge $25 or more About $25

    $10 Tier + pre-release access to the free modeling platform.

    Less
    Estimated delivery
    12 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Reward no longer available

    Pledge $50 or more About $50

    $25 Tier + support for a model of your choosing with up to 50 entities. See "Community" section for model details.

    Less
    Estimated delivery
    Reward no longer available 7 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  5. Select this reward

    Pledge $50 or more About $50

    $25 Tier + support for a model of your choosing with up to 50 entities. Half-hour one-on-one consultation. See "Community" section for model details.

    Less
    Estimated delivery
    3 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  6. Reward no longer available

    Pledge $100 or more About $100

    $25 Tier + support for a model of your choosing with up to 100 entities. See "Community" section for model details.

    Less
    Estimated delivery
    Reward no longer available 3 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  7. Select this reward

    Pledge $100 or more About $100

    $25 Tier + support for a model of your choosing with up to 100 entities. One hour one-on-one consultation. See "Community" section for model details.

    Less
    Estimated delivery
    1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  8. Select this reward

    Pledge $250 or more About $250

    $25 Tier + support for a model of your choosing with up to 500 entities. One and a half hour one-on-one consultation. See "Community" section for model details.

    Less
    Estimated delivery
    0 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  9. Reward no longer available

    Pledge $500 or more About $500

    $25 Tier + support for a model of your choosing with up to 1000 entities. See "Community" section for model details.

    Less
    Estimated delivery
    Reward no longer available 1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  10. Select this reward

    Pledge $500 or more About $500

    $25 Tier + support for a model of your choosing with up to 1000 entities. Two hours of one-on-one consultation. See "Community" section for model details.

    Less
    Estimated delivery
    3 backers
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  11. Select this reward

    Pledge $1,000 or more About $1,000

    $25 Tier + support for a model of your choosing with more than 1000 entities. Four hours of one-on-one consultation. See "Community" section for model details.

    Less
    Estimated delivery
    1 backer
    $
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (30 days)