Release Notes for Stella 2.0.3

These release notes list feature changes for the current release of Stella Architect, iThink Version 2, Stella Professional, and Stella Designer. Feature changes are also shown for previous versions of the software. There is a list of Known Issues for the current software release as well as a version by version detailing of Defects Fixed.

New and Updated Features

In 2.0.3

Added load run option to Stella Simulator

It is now possible to load in data as a run in Stella Simulator. This is most useful for calibration runs as described in Stella Simulator Use Examples.

Updated SIZE builtin to allow dimension names directly

When using the builtin SIZE to provide the number of elements in an array dimension you can now simply specify the dimension name. See Array builtins for details.

Improvements to the opening of Vensim models

The translation utility has been updated to handle more Vensim models, especially those that use flows as inflows to (or outflows from) than one stock equation. See Opening Other Models for more discussion.

In 2.0.2

Initialization options for Conveyors, Queues, Ovens and Cycle Time Stocks

It is now possible to use equations to specify the internal content of conveyors and queues, as well as to specify the initial values of attributes and cycle time within stocks. These additions allow a model to be initialized in a way that is representative of the true initial state of the system (for example a conveyor with initial growth). For more information on this see Initializing Discrete Stocks.

Optional equation conventions

To simplify setting optional equations rather than having to turn on and off specific optional equations, such as that to arrest a conveyor, the equations can now simply be left blank. See Equation Tab for more discussion.

Streamlined Find

The interface used to find variables has been streamlined to make it easier to perform the most common tasks. See Find window for more details.

Causes and uses display

The right click menu can now be used to show the causes and uses of a variable. In addition, the causes and uses now list both first and second order causes and uses, making it easier to visual dependencies. See Context Menu and Causes Uses for discussion.

Automatic timer based game advancing

You can set up multiplayer games to automatically advance based on a timer. This forces games to continue even when some players have not met the deadline of committing their decisions. See Multiplayer Options dialog for details.

Invariant file content

Files saved will no longer change when there have been no changes to the underlying model. This used to happen because of the sequence in which content is written out and changes in internal object IDs.) The invariance includes modules saved as separate files which facilitates use with version control systems. See Saving Changes to Modules for information of saving modules as separate files.

Improved report as options for interface

The "Report as" option associated with a converter will now be used on the interface to determine whether the current value of the variable will display when a model is paused. Selecting stock will ensure that the current value is always displayed (even if it might change after resuming). See Scales and Ranges Tab for details on setting this.

Outline only diagrams on the interface

An option has been added to allow diagrams to draw only the outline of shapes. This is useful when you are using a diagram to overlay other content. See the Model View documentation for details.

Duplicate connectors give option to replace old connector

If you draw a connector that already exists you will have the option to replace the old connector with the new. This is helpful for moving connections to ghosts, and also rearranging connectors in busy models.

New keyboard shortcuts

You can now use Ctrl+E to switch to edit Model and Shift+Ctrl+E to switch to explore or experiment mode. A full list of keyboard shortcuts is available at Keyboard Shortcuts and Key Combinations.

In 2.0.1

Allocation based on targets and preferences

The new builtin ALLOCATE allows allocation of quantities taking into account both availability and attractiveness. This can be used to allocate a supply to different consumers, or to allocate demand to different producers. See ALLOCATE(<available>, <index>, <target_array>, <priority_array>, <priority_spread>, [<shape>])

for more discussion.

Support precision on Graphical Inputs

You can now specify a precision for graphical inputs on the interface allowing, for example, to keep to integer values. See Graphical input (Interface) for detail.

Find all uses of a Dimension

It is now easy to find every variable that uses a given dimension. This is useful for when dimensions are changed, and also for finding unused dimensions. See Find window for details.

Loop highlighting across modules

Loops that cross modules will now highlight the modules involved in the loops and the associated module connectors (if they represent only a single cross level connection). This makes is somewhat easier to follow loops across modules, but the automated CLD view (see CLD Generation) may be a more effective way of visualizing such loops.

Html tags in text boxes and annotations

You can include html tags in text boxes and annotation on the interface. These will display and behave the way they would in a web page, and can provide a convenient way to add links (or embed content) in interfaces. See Text boxes and Annotation Button (Interface).

In 2.0

Loops That MatterTM

Understanding models has never been easier! Loops that Matter is new functionality in Stella 2 that allows you to immediately visualize the impact of every variable in a model on every other variable during the course of the simulation. The software identifies the feedback loops important to generating behavior and allows you to create causal loop diagrams that display those loops in a simplified form. For more see the Loops That MatterTM Overview.

Automatic Diagram Layout

Stella will now create stock and flow diagrams, or fill in missing pieces, for models created in other applications and brought in to Stella. See Opening Other Models for more details.

Highlighting Non-negativity Constraints

When a flow is forced to 0 because of a non-negative stock, both the flow and the stock will now highlight to show that this has happened. Hovering over the highlighted stock or flow will give a message showing what type of constraint was encountered. There is an option in the Preferences Dialog to turn off unless an option in the Model Settings Properties Panel is used to turn it off for a specific model.

Direct Opening of Vensim Models

New to Stella 2.0 is the ability to open Vensim .mdl files directly. Both the equations and diagram will be translated. See Opening Other Models for more details.

Model Equation in Table

The Equation Viewer will now display equations in a table, making it much easier to read and navigate through the listing. The table can be saved to html or copied to the clipboard in for pasting into a spreadsheet.

New Builtins

The LOOKUPMEAN builtin can be used to compute the mean value of a graphical. This is most useful for graphicals on the range of 0 to 1 representing probability density functions. The builtin MLPANN can be used to embed artificial neural nets in models to capture arbitrary nonlinear relationships. The builtins PATHSCORE and LOOPSCORE are for use with Loops that Matter. See Miscellaneous builtins for more details.

Distribution profile for Conveyors

Material coming into a conveyor is normally put at the beginning, then sent across the conveyor over the course of the simulation. It is now possible to distribute the material over the conveyor following the contour in a graphical. This effectively allows arbitrary residence time distributions which provides more accurate modeling in cases where the time in stock is variable. See Spreading Conveyor Inputs for more detail on how this works.

Stella Live on the Interface

We have added the ability to create an interface where Stella Live is always on. Simply set this option in the Interface Settings Properties Panel. There is also a new action to first run a model, and then enter Stella Live, mimicking the behavior of the run button during model development (see Actions (Interface)).

Save to Disk option on Optimization Log

You can now save an optimization log to disk during the optimization. This allows recovery in case of a software failure which is valuable for optimizations that run for long periods of time. See Optimizer Messages for more detail.

Data Collection from Stella Live

During data collections the results from the last Stella Live run can now be captured (see Data Collection for more details).

In 1.9.5

Subranges

It is now possible to create and use subranges to simplify both array operations and the selection of values from arrays with different dimensions. See Subranges for more details.

CLD Page Size

You can now set the size of CLD pages making it easier to organize your content. See CLD Style Properties Panel for details.

In 1.9.4

Export Data Options

We have added an option to include precomputed converters and flows when exporting data. See Export Data dialog box for more details.

In 1.9.3

Runs Comparison

We have added a function that allows you to quickly compare two runs. This makes it easy to track down differences between runs, especially differences resulting from changes in constant or graphical values. The Runs Comparison window reports the differences between two runs and the first time those differences occur. It is opened from the Open Runs Comparison command on the Windows menu. See Runs Comparison for more details.

Simulation Duration Control

You can now control the speed at which a simulation progresses using a variable(rather than the old simulation speed control). Simply select the model variable you want to define the simulation duration with in the Model Settings Properties Panel. You can use a slider or other input device the then set the simulation duration or speed. You can also vary the simulation speed based on model conditions.

Save List Based Export Definitions

There is an additional export option that reads a list of variables from a file and then exports values for those variables. This is most useful for batch processing where the list of values to view is not known ahead of time and can be written to a file allowing a model to report different results without having to edit the model. See Export Data dialog box for details.

Improved Unit Definition Facility

It is now possible to create definitions for units that already have built in definitions, effectively replacing them. This makes it easier to have units suited to your needs. See Unit Editor dialog box for details. This dialog has also been improved so that double clicking is not required to edit unit definitions. In additions, changes to unit definitions are now tracked in the undo/redo system. We have also added Tons and Tonnes to the built in definitions.

Causes, Uses, and Selection Hisotry

The selection history panel has been replaced with menu items in the Equation Tab of the Properties Panel and also on the Results Panel. These menu items allow you to look at the previous 10 variables you have worked with and, if you select a previous variables, the next ones that you worked with. See

More Control over Decimal Character

You can now override the settings for your computer to choose whether a , or . should be used as the decimal delimiter. This is done from the Preferences Dialog.

More control over paging when dragging model elements

When dragging things on the model dragging off the current boundary of the model will no longer aromatically add pages. Instead the page will be added only after you release the mouse button. Thus, moving off then back onto the current model extent will not cause a change in the number of pages used for the model diagram.

Border Radius on Text Box and Annotation Popup

You can now set the border radius on text boxes (Text Box Properties Panel) and annotation popups (Annotation Button (Interface)).

Zero Line on Graphs

There is now an option to add a grid line at 0 on graphs. See Graph Settings Properties Panel.

In 1.9.2

Attribute based Queue Dispatch

Queue outflows can assign a list of attribute values that they will dispatch. This allows downstream routing of material flows based on attributes without having to create separate flow channels for common processing resources. See Queue Computation and Equation Tab for more discussion.

Element by Element Equation Dependencies

You can now use expressions such as SELF[Dimension-1] inside of equations to reference prior (or later) elements in arrays. See SELF for an example. Similarly, you can create loops with apparent circularity that resolve on an element by element basis. See Referencing other Array Elements for more discussion.

Setting Converters to Display as Stocks

We have generalized flow concept to allow you to specify that a converter should be reported the same way a stock is on tables. This is most useful on the interface, where stock values are reported at the current time when a model is paused, but converter values are not. It is also helpful on financial tables, where converter values are reported one DT in advance of the reported time for stocks (the end of period concept). See Scales and Ranges Tab and Financial Tables for details on setting these.

Number Formatting on Tables

There is now a number formatting button on the panel used to set up tables and financial tables, making it easier to adjust these to your needs. See Table Properties and Financial Tables for usage.

Simulation Log Improvements

The simulation log only opens when model opens if there are errors to report. Parameter overrides are still reported, but will not cause the log to open. There is also a new shortcut on the Run Toolbar to open the Message Log whenever it has content.

In 1.9.1

Internal Rate of Return

There is a new builtin IRR that computes the internal rate of return on a stream of payments. See Financial builtins

for details.

Attribute Specific Cycle Time Metrics

The Cycle-time builtins now take an optional attribute range which allows you to look at the characteristics of batches with specific attributes. See Cycle-time builtins for more detail.

Filtering for Dynamic Causes in Causal Lens

The causal lens allows you to (and by default does) filter out causes from initialization as well as constants when looking at the causes. This removes variables that do not directly contribute to the dynamic behavior of another variable. See Causal Lens™ for details.

In 1.9

FIFO Conveyors

There is now a FIFO option on conveyors so that they maintain material in the order received and respond immediately to changes in transit time. See FIFO Conveyor Computation for more discussion. Conveyors are marked FIFO in the Conveyor parameters.

Discrete Attribute Tracking

You can now set an attribute on flows that are connected to discrete stocks (and non-negative stocks in Cycle-Time Mode). The attributes can be measured on downstream stocks and flows and can optionally be used to prioritize material for processing in queues. See Attribute and Cycle Time Tracking for an overview, Flow options for a description of how to set the attribute, and Discrete builtins for the new builtins used to measure the attributes.

Prioritization of Material entering Queues

The discrete attribute can be used to prioritize material entering the queue (so the queue is not longer FIFO). This allows material from different sources to be processed differently. See Equation Tabfor the use of the attributes to prioritize material flowing into queues and Queue Computation for more discussion of how the material is ordered.

Round Robin and Prioritized Queue Dispatching

Queue dispatching to multiple places now allows you to set priorities for destinations and will provide a round robin mechanism to make use of all available destinations (typically ovens). See Equation Tabto set the parameters and Queue Computation for more discussion of how the priorities are used.

Queue Purging

Material that has been in a queue for too long can now be purged from the queue through an outflow that is only active when the age of material has exceeded a threshold. See Flow options to set a flow so that it will purge a queue and Queue Computation for more discussion of the way purging works.

Spreading of Conveyor Inflows

Conveyor inflows can now be marked to be spread across the existing material in a conveyor rather than added at the beginning of a conveyor. This is useful when parallel conveyors are tracking similar groups of things, such as aging people, and one conveyor leakage can be used to introduce material to another as it would with incidence of a disease. It is also useful in demographic modeling in general as it makes is much easier to deal with immigration and emigration. See Flow options to set the flow and Spreading Conveyor Inputs for more detail on how this works.

Graphical Presets

Graphical functions now have a number of suggested forms available that make it easier to draw smooth curves. See Graphical Function Tab for more discussion.

Inverse Graphical and Graphical Area Builtins

Two new builtins have been added to make it easier to work with graphical functions. LOOKUPINV will invert a graphical so that, if the graphical is monotonic, the value of the input required to get the specified output will be returned. LOOKUPAREA will return the area underneath the graphical up until the indicated input value. For more details see Miscellaneous builtins

ROOTN Builtin

The ROOTN builtin returns the nth root of the first argument. See Mathematical builtins for details.

Importing Array Definitions

You can now define the elements of an array (both their names and the number of them) using Import Sheets. This allows you to change the specific content of array elements without having to edit the model, and can be very useful for data intensive model set up. See Import Data dialog box for details.

Pyramid Graphs

We have added a new graph form that allows you to represent two sets of equally sized array entries on the left and right hand side of mirrored horizontal bar graphs . A common use of this is a population pyramid which shows the number of people by age group separated by sex. See Pyramid Graph for more discussion.

Horizontal Bar Graphs

The bar graph now has a variation in which the bars are drawn horizontally instead of vertically. With the exception of orientation, the options and behavior of the two types of bar graphs is identical. For more information see Bar Graph

Financial Tables (Interface)

A new financial reporting style table has been added on the interface to make it easier to present information in the style of financial reports. It allows formatting, including font and color, to be applied line by line. For more information see Financial Tables.

Expandable Graphs on the Interface

When you place graphs on the interface you now have an option to provide an expansion button for the graph. This will make the graph bigger, and also provide a control so that the interface user can zoom in to see a narrower time range on the graph. See Expanded Graph dialog (interface only)

Published Accessibility Options

Published interfaces can now support keyboard input and alternative text to improve accessibility. See Interface Accessibility for more discussion.

Arrays in Graphs

You can now add an entire array (or a slice of an array) to a graph and have it stay in the graph in that form. This simplifies graph definitions and improves labeling while also supporting changes to array element definitions without having to rebuild a graph. See Graph Series Property Panel for more discussion.

Usability Improvements

We have made a variety of usability improvements that should make it easier to build and use models including:

New Slider Style

There is a new style of the slider (horizontal only) that can give your interface a more modern look. See Slider (Interface)

Spell Check Panel

There is now a panel that will open and list all spelling errors that have been found in variable names. See Spell Check Panel for more details. Improvements have also been made to the ignore selection in spell check so that anything ignored will be remembered with the model.

Module Navigation Panel

The module navigation panel allows you to see all the modules in a model and their containment structure in one place. It is a very useful device for quickly navigating through large models. See Module Navigation Panel for more details.

Module Labeling

You can now put labels on modules so that the module name used in graph, tables, and cross level references can be short, while the name displayed on the module can be more descriptive. See the Module Properties Tab for more discussion.

Model Bundling with Supporting Files

The file menu now has a function to export your model as a bundle. This creates a zip file including your model and all supporting files (images, movies, import sources and export destinations). For more details see File Menu.

Lead-in Time Improvements

If you specify a lead-in time for use in an interface then results will always be shown till the lead in time in presentation mode and when published (no blank graphs). See Interface Settings Properties Panel-to see how to set the lead-in time.

Lock Diagram

A new option to lock a model diagram can be used to prevent any movement of variables or other objects in the model. This is useful for preventing inadvertent changes or reminding others that things should not be changed. This is set in the Model Settings Properties Panel

In 1.8.3

iframe Embedder

Allows you to imbed an iframe into an interface page supporting surveys and inclusion of content from other websites on the interface. See iframe(interface) for more information.

Units Check Improvements

The messages related to units issues for unit converting flows have been improved. Checking has also been added for conveyor transit times, conveyor capacity limits, conveyor inflow limits, and oven cook times.

Background color on Text Boxes

Selecting a text color close to white no longer requires that you set the background in the editing window to see the text. Instead the lack of contrast is detected and a different background used automatically. See Text Box Properties Panel for more about Text Boxes.

Improvements to Legends on Scatter and Bubble Charts

The legends now use a square instead of a line segment to show what is being displayed. See Scatter Graph

and Bubble Chart for details on these two graph types.

In 1.8.2

Stella Live with Arrayed Variables

You can now see results for arrayed variables and adjust inputs via knobs when using Stella live. The array elements being displayed or changed are determined by the selection you make in the Results Panel. When you open a model the first elements of each array will be selected.

Array Wildcards

By using array wildcards you can set up graphs, tables, and other output and input objects to display different elements of an array based on user selections. On the model layer this works very much like Stella Live with arrayed variables, on the interface it provides flexibility in page design and can also be used to simplify multiplayer game design as described in Using Wildcards for Multiplayer Games. For more information see Wildcards.

Placeholder Variables

Place holder variable allow you to create graphs, tables, and other input and output objects that can be used with different variables based on selections you or an interface user makes. This makes it possible to reuse parts of an interface page, or an entire page, to represent different parts of a model. It also allows the creation of graphs, tables, and numeric displays on models that can be switched by changing which placeholder variable is selected via the Results Panel. For more information see Placeholders.

Confidence Bounds

Confidence bounds allow you to see how much an optimization parameter can change in order to have a specific influence on the resulting payoff. Most commonly they are used to bound parameter estimates resulting from a calibration, but they can also be used in outcome optimizations. For more information see Calibration.

Optimizer Log

We have improved the reporting of information from optimization by writing it to the Optimizer Messages which allows you to see more clearly the results, and also to look back at previous optimization runs in an organized manner.

Export Changes from the Interface

We have added the ability to export the set of variables that have been changed on the interface, both constant values and graphicals. This makes it possible to save the settings for a run made on the interface and then reload them at a later time. See Actions (Interface) for details.

Performance Improvements

We have improved simulation speed and model save time for large models with complex equations.

In 1.8.1

Team and Player Assignments in Multiplayer Games

Team and player assignments allow you to set up classrooms with individuals assigned to specific teams for a multiplayer game. See Team and Role Assignment for more discussion.

SENSIRUNCOUNT Builtin

This new builtin allows tracking of the run number within a sensitivity run. This is useful if you want to set something specific, such as a noise seed, based on which sensitivity run is occurring. See Miscellaneous builtins for details.

Allow use of SELF in ENDVAL

The SELF builtin can now be used in the ENDVAL builtin, allowing customized definitions of RUNCOUNT. See Data builtins

for more discussion.

Display Time Bounds for Scatter and Bubble

The Scatter Plot and Bubble Chart now allow you to specify the time range from which values should be drawn. See Graph Settings Properties Panel

In 1.8

Calibration

Calibration is the process of adjusting model parameters to make the behavior line up with a target, most commonly measured time series data. It is now easy to set up payoffs and use the optimization engine in Stella to accomplish this. For more details see Calibration for more discussion.

Importing Time Varying Values

Time varying values allow you to have variables take on different values at different times based on imported data. This is useful as a mechanism for bringing in a sequence of decisions or controlling values, and also loading in data to be used in calibration. See Import Data dialog box for more details and Defining Calibration Payoffs

for the use of imported time varying data in payoff definitions.

Optimization from the Command Line and in Stella Simulator

The -ro option has been added to the command line to run optimizations. See Running Models Using the Command Line

for details.

The same option has also been added to Stella Simulator, as has support for sensitivity and more control over initialization. See Stella Simulator Arguments for more details.

Printing of Interface Pages

Print and Print Preview have been added to the File menu on the interface window. These will print the pages currently displayed in the Page Preview Panel. See File Menu

Sobol Sequences for Sensitivity

There is an additional option to use Sobol sequences when preforming multivariate sensitivity. Sobol sequences are designed to maximize the exploration of multidimensional parameter spaces. See Sensitivity Specs Panel for more details.

Replacing Runs

It is now possible to replace a run with another run so that any graphs or tables referring to the run will be updated. For example, if you have a run named base, you can have the current run replace it. For details see Data Manager

Units in User Macros

You can now specify the units of measure for a User Macro based on the units of measure of the arguments to the macro allowing full checking of model units. See Working with Macros for more discussion.

New INTERPOLATE Function

There is a new function INTERPOLATE that will take an N dimensional set of points and return the value derived by interpolating between these point values. In one dimension this will act the same way that a graphical would on a vector of numbers. In higher dimensions the interpolation is between planes (or hyperplanes) of the different dimensions. See Array builtins for more details.

Lead-In Time and Restore Inputs Options (Interface)

You can now set runs to start part way into the simulation when working on the interface. This is convenient if you want users to start with some results already available. There is also an option to restore inputs when starting new runs, which is very useful for multiplayer gaming. See Interface Settings Properties Panel for more details.

Shape Tool (Interface)

The shape tool makes it easy to add vertical and horizontal separators on interface pages as well as to include outlined or shaded ellipses (including circles) and rectangles. See Shape (interface) for more discussion.

Hover Tips in Graphical Inputs (Interface)

There is now an option on Graphical Inputs to display the current x and y values as the user drags the points in the shape. This is especially useful for discrete graphicals. See Graphical input (Interface) for more discussion.

Hover Tips on Sliders (Interface)

You can now control when hover tips appear on sliders (always, never, or when the user is dragging the slider). See Slider (Interface) for details.

Numeric Display Number Formatting

You can now specify number format for the numeric display in the properties panel. This allows you select multiple numeric displays and set the formatting options for all of them together. See Numeric Display Properties

Loop Indicator on the Interface

If you include Loop Indicators on your model they will now be active when the model structure is presented in either a model view or on a story in the interface. See Loop Labels for more discussion.

Simplified Inclusion of CLDs

Causal loop diagrams created in The CLD Window will now have NAN equations automatically added. These will simplify the inclusion of CLDs in simulating models as they will no longer create invalid equation. The NAN(a,b) format can be added by hand when working in regular models (see Creating CLDs) .

Added Mojave Support on Macintosh

Stella will now work with the features in the newly released Mojave operating system on the Macintosh including the dark mode interface selection.

Importing to a Module Maintains Cross Level Ghosts

When you replace the contents of a module using the Import button any cross level connections between the module and the rest of the model will be retained as long as the names in the model for inputs and outputs have not changed. See Module Properties Tab for more discussion or Agent Based Examples for a typical usage.

In 1.7.1

Simplified Causal Loop Diagram Creation

You can now ask for a new causal loop diagram and have the simplified toolset necessary for creating causal loop diagrams. That toolset () makes the creation and editing of CLDs quick and easy. It also matches the toolset of the Online CLD Editor. For more information see The CLD Window.

Switch Color

You can now set the color that a switch on the interface displays when it is on. See Switch (Interface) for details.

Graphical Input Appearance (Interface)

You can now set the line color for the graphical input on the interface and also specify a fill intensity to display color below the line. See Graphical input (Interface) for more detail.

Integer Option on Allocation Input (Interface)

The Allocation Input object now has the option to computer only integer values allowing more control of both the values and the label appearance. See Allocation Input (Interface) for more details.

Offline Help Files

There is now a menu option to download the help files as a zipped archive for use offline. This allows you to view the help files locally when you do not have an internet connection. See Help Menu for details.

Sharing Models and CLDs Online

We have added to the options for sharing Models and CLDs online allowing you to give other people access to your work without marking it as creative commons. This option is not available in the free online editor. See Sharing Models Online for more discussion.

Causal Lens Improvement

If there are long variable names in the causal lens, you can now hover over them to see the full expanded name. See Causal Lens™ for more discussion of the Causal Lens.

Multiple leakages Control

When a conveyor has multiple leakages with different leak zones you can now specify whether the leakage fraction on later leak zones applies to the inflowing quantity or the quantity that has remaining after the earlier leakages. See Traditional Conveyor Computation for more discussion.

 

In 1.7

Navigation Control

The Interface has a new tool used to add a set of navigation links to an interface page or template. The bar of navigation links can appear as a row of tabs or buttons. The styling includes radius corners and spacing. For more details see Navigation Control (Interface).

Spell Check

Spell check is now available for variable names, documentation, and labels. You can select different dictionaries in the Preferences Dialog and correct misspellings using the Context Menu.

Run by Modules Improvements

It is now possible to turn modules on and off in Stella Live, while paused, and on the interface, including in storytelling (see Running Modules for more discussion).

Conveyor Leakage Changes

Leakage computations on conveyors with a variable transit time have been improved to more accurately reflect the leak fraction or rate. See Traditional Conveyor Computation for a more detailed discussion of leakages and conveyor initialization and computation.

Encapsulating Sectors and Selections into Modules

Encapsulation allows you to take a selection of variables, or a sector, and automatically put them into a module with the appropriate cross level connections into and out of it. This makes it easy to simplify models that have too much detail built up in any given module. For more details see Encapsulating Structure.

Mixing Graphs and Tables in Containers

You can now create a container that includes both graphs and tables making it easier to provide the output you want without using up real estate. See Graph Series Property Panel and Table Properties for more details.

Improved Opening Time

Large models should now open more quickly.

Interface Scaling Improvements

You can now set interfaces to scale prepositionally when they are deployed. This makes it easier to have interfaces that work on different devices without having to limit the minimum or maximum size (another added scaling capability). See Resizable Interfaces and the Resizable Options dialog for more information.

User Defined Macros

You can now create reusable pieces of model structure that can be used the same way that the builtin functions are. This allows you to create customized versions of commonly occurring patterns such as cascaded delays as well as more specialized functions. See Working with Macros for more details.

Bubble Charts

Bubble charts allow you to display three different dimensions of attributes on a single graph. These graphs represent a snapshot of values at a time and will animate during simulation or when dragging the time slider. See Bubble Chart

for more detail.

Multiple Entry Scatter Charts

Scatter charts can now have more than a single entry. This allows for comparison of x and y values across different runs or comparison of different sets of x and y values. See Scatter Graph for more discussion.

Irregular Time Axis on Imported Data

It is now possible to import data with arbitrary time values rather than requiring a uniformly increasing time axis. This makes it easier to accommodate missing values as well as values from different data sources. See Data Manager for more detail.

Stashable Graphs and Tables

Stashable graphs and tables allow you to hold on to run results that are of special interest, while displaying the current run at all times. This is a convenient way to collect a sequence of interesting outcomes, and replaces the old functionality related to persevering and releasing data. For more information see Stash Data for more discussion.

Picture in Picture Module Viewing

It is now possible to peek into modules without navigating into them. This allows you to see what is happening in a module while still looking at what is happening on the parent model of that module. This allows you to make changes in Stella Live and see the consequences of those changes in another module. It also allows you to get an overview of module structure without losing your current visual focus. See Picture in Picture Module Viewing for more details.

Collapsable Panels

Many of the panels now include sections that can be collapsed if you do not need to refer to them. This decreases the amount of information displayed on the panel and thus easier to work with. See Stella Modes, Views, and Panels

for more details.

Model Compare

A new feature has been added that allows you to compare the model you currently have open with another saved model. This is a convenient way to see what changed have been made for models derived from one another or a common source. See Model Comparison dialog box for details.

Narrowing Time Range for Results Panel and Causal Lens

You can now zoom in on the displayed time in the Results Panel and Causal Lens. This makes it easier to trace down sources of behavior at a point in time, as well as seeing changes in behavior between multiple runs. See Results Panel

and Causal Lens™ for details.

Equation View Enhancements

We have added options to the equation viewer to make it easier to provide written model documentation to meet the requirements of peer reviewed journals such as the System Dynamics Review. See Equation Viewer for more details.

Vertical Sliders

There is now an option to display sliders vertically as well as horizontally. See Slider (Interface) for more details.

Line Graph Updates

You can now specify that graph be drawn without connecting the points into line. See Graph Series Property Panel for more detail.

Button Highlighting on Mouse-Over (Interface)

There is a new option to have buttons change their appearance as the mouse cursor passes over them. See Styles Tab for details.

Aligning Objects

When you select 3 or more objects on the interface there is now a menu option to either align or distribute those objects to clean up layout. Details are available in Context Menu.

You can keep the movement of objects completely horizontal or completely vertical by holding down the Shift key. This works on both the model and the interface.

Loop Indicator Improvements

The loop indicator now works by selecting all of the elements you want highlighted. This allows you to select more specific loops or parts of structure for display. See Loop Labels.

Find Persistence

The find will now retain what you are searching (Variable Name, Equation or Documentation), the order in which to display results, and whether to search in the whole model, the current module or the current module and modules it contains.

Sensitivity Improvements

You can now provide an external list of parameters to change when running sensitivity analysis, and we have changed the sampling for Ad-Hoc and Incremental when running a limited number of runs to better support random selection of discrete values. See Sensitivity panel for more details.

Improved Security Settings

We have made a number of internal improvements to the security settings (see Model Security dialog box) and fixed issues that arose from specific character combinations in low security passwords. One consequence of this is that models saved in the current version using security settings will not open in versions before version 1.7.

In 1.6.2

Optimization within Sensitivity

In addition to being able to run optimizations over sensitivity runs you can now run an optimization within each sensitivity run. This is a convenient way to see how the optimal parameters found vary based on other model parameters or noise seeds. This is set up in the Sensitivity Specs Panel

Constraint Handling in Differential Evolution

It is now possible to add constraints to differential evolution optimizations allowing the specification of inadmissible search spaces without degrading the efficiency of the search. See Optimization Specs for details on setting this up.

Find Options

The find tool now makes it easier to look for content that appears in equations and documentation by allowing you to specify search terms within these. See Find window for more details.

Managing Time Formats

A Manage option was added to the right click (Ctrl-click/⌘-click) menu item for formatting items in graphs and tables. This will open the Manage Time Labels dialog box allowing you to add and modify formats as well as changing the default time format.

Table Position in Results Panel

The scroll position on the table in the Results Panel is now retained when moving between variables.

Documenting Models in the Equation Viewer

Options have been added to the Equation Viewer to make it easier to create model documentation that meets your needs. It will now display optional variable usage and provides increased control over annotation. See Equation Viewer

for more information.

Sketchables with Fill

You can now fill in the area underneath a sketchable graph. This is especially useful when using discrete graphicals as it provides a sharp contrast between adjacent values.

Getting Outputs in the Sensitivity Parameters List

There is now an option to see both the inputs to each sensitivity run as well as the outputs in the currently displayed graph or table. See Sensitivity Parameters dialog (Model Only) for more detail.

In 1.6.1

Ghost Tool

If you click on an empty part of the model when using the ghost tool the Find dialog will come up allowing you to ghost a variable without first navigating to it.

Restore Window Layout

Under the Window menu on the model and the interface, the Restore Window Layout option will reset all window, panel and tool bar positions to where they were when Stella was first installed (isee systems default settings). See Window Menu

Zoom to Fit

In the Zoom control, a new option has been added to automatically adjust the zoom level of the model diagram or interface page so that all objects will be visible within the viewable space without needing to scroll. See Model Window Mode Toolbar for details.

View Results and Causal Lens

A combined View Results and Causal Lens has been added to the Online Model Editor. See Getting Started Online.

In 1.6

Global Number formatting

You can now specify a model level default number format that will be applied to all variables instead of having to do this variable by variable. This is done in the Model Settings Properties Panel. The options are the same as they are for each variable, and variables can still be set individually as well.

Currency, Prefixes and Suffixes for Formatted Numbers

Instead of limiting output formatting to use a $ or % you can now specify arbitrary prefixes and suffixes for output numbers. See Scales and Ranges Tab for more discussion.

Time Formatting and Labeling

You can now format time to display years, months and days and not simply decimal values. See Setting up Time Bounds for more discussion.

Variables Used in Graphs, Tables and Interface Objects

You can now find what graphs or tables (or interface object) a variable is used in by right clicking and selecting Find Uses on the right (Ctrl) click menu. See Context Menu for more details. You can also locate exported tables from the Export Data dialog box

Published Model Performance

The performance of published models, especially simulation speed, has been dramatically improved and will, with a modern browser, match the performance on the desktop.

Importing and Exporting Data

It is now possible to import and export data from the interface for published models. These are both set up using a Button (Interface). When the button is clicked the user will be prompted for a file to upload or save to. Only .csv files are supported on the interface. See also notes in Creating Import and Export Files.

Simulation Speed Control

The new Simulation Speed control allows you to let the interface user set the speed at which the model simulates. See Simulation Speed for more details.

Object Visibility

You can now have objects be made conditionally visible based on variable values, or the role in a multiplayer game. This allows customization of the user experience based on the state of a simulation. See Object Visibility (Interface) for more details.

Display Time

Much like the progress bar in the development environment the Display Time object shows progress during a simulation and allows the user to scrub over different times in the simulation. See Display Time (Interface) for more details.

Support for Sound

You can now add a button that will play a sound, and have a sound be played in response to a simulation event. This works the same on the desktop and for published models, though supported sound formats vary by browser. See Button (Interface) and Simulation Event Action dialog for more detail.

Documentation on the interface

You can now display equations, units of measure, and any documentation provided for a variable in a Model View. This material is displayed as the mouse moves over the elements of the model. See the Model View documentation for details.

Negative Binomial Distribution

The NEGBINOMIAL (negative binomial) builtin has been added. This returns the number of failures that occurred getting to a specific number of successes for a given probability of success. See Statistical builtins for more information.

Truncating and Sampling Distributions

You can also specify a minimum, maximum and sampling interval so that it is easy to create truncated or sample distributions in models, and truncated distributions for sensitivity. See Statistical builtins for more discussion of truncation and sampling.

Quoting of Array Dimensions and Elements

You can quote an array dimension name and element names by putting double quote around them (as in "1-2"). This capability is in place primarily to support the importation of models translated from other languages. If you do create labels with quotes the model will not work in previous versions of Stella.

Probability Density Options on Histograms

The Histogram has had options added to appear as a probability density function (pdf) and cumulative density function (cdf). See Bar Graph for further discussion.

Improved Variable Highlighting

Highlighting of variables is now easier to find even in dense models with lots of color.

Passing Parameter Information for Data Collection

It is now possible to pass parameters to a simulation set up with data collection by appending them to the URL for the model. See Data Collection for details.

Behavior and Compatibility Notes for 1.6

Note that the BINOMIAL and GEOMETRIC builtins were not behaving the way they were documented. The probability parameter was being multiplied by DT prior to execution. If you are using these with a model that has DT of 1, there will not be any change in behavior. Otherwise, multiply the probability by DT to get the same behavior. The MONTECARLO builtin will also allow you to specify a success probability that is limited to 100% per DT, not 100%*DT per DT as it previously did.

Backward Compatibility

Models from versions prior to 1.6 can be opened and saved in 1.6 then reopened in previous releases and should be unchanged. As always, new features available in 1.6 will not be recognized in previous versions. Thus, for example, additional arguments to NORMAL and other random number generators will be treated as errors in earlier versions of the software.

The new time and number formatting options introduce more complexity when models are opened in previous versions of the software. By design, if a model from version 1.5 is opened and saved in 1.6 it will reopen unchanged in version 1.5. However, if you make changes to the default number or time formats (see below) in 1.6 then those changes will be lost when opened in 1.5. When reopening in 1.6, you will need to add back in the default format changes. As you add in additional number and time formatting options this becomes more complicated and it is possible to lose additional time and number formatting information. Therefore, if you are planning to work with people using prior versions of the software it may be simplest to not set the model level defaults for time and number formatting.