Release Notes for Stella 3.7

These release notes list feature changes for the current release of Stella Architect, iThink, 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 (click on to see a video explanation)

In 3.7

Box and whisker graphs

Box and whisker graphs allow you to show uncertainty over a series of realizations of an uncertain value. They, importantly, allow comparative display across different uncertain scenarios when set up across array elements as described in Box and Whisker Graph.

Confidence graphs

Confidence graphs allow you to see the spread of outcome across either multiple runs or multiple array elements. See Confidence Graph for more details.

Models that had comparative line graphs set up with the option to plot confidence values will automatically be translated into the new graph type. The option to plot confidence values no longer appears on the line graph.

Correlation graphs

Correlation graphs allow you to see the relationship over time of different variables across sensitivity runs. This is a an effective way to explore the important determinants of behavior for selected variables. See Correlation Graph for more details.

Graph selection from dropdown

Rather than selecting graph types by clicking on a radio button, they are now selected from a dropdown list of types.

This makes it easier to see which types of graph you will be adding. See Graphs for more discussion of the different graph types.

More control over line graph appearance

In addition to numbers, you can also mark graph lines with letter and symbols. See Line Graph for details. The Correlation Graph also supports this.

The Line Graph also has a new option to draw series with stepwise connections between points, so that the graph lines consists only of horizontal and vertical segments with no interpolation between them. See Graph Series Property Panel for details.

CLD generation based on tags

To create a CLD from a set of tagged variables simply click on- in the Mode Toolbar. This will bring up the CLD Tag Selection dialog box which will allow you to specify which tags to use. The resulting CLD is the same as chose created using Loops that Matter as discussed in CLD Generation.

Selecting array elements to display

Tables and graphs, including the Results Panel, allow you display all elements of an array together. For large arrays this can be cluttered, and the new Array Selection Panel allows you to select which elements of an array you would like to see values for.

Improvements to arrayed equation

Version 3.7 contains a number of changes that make it easier to work with arrayed variables and their equations.

A CONTAINS keyword has been added that provides a quick way of testing whether the current element in an array is contained in a subrange of the array. This can simplify equations that might depend on nested IF THEN ELSE to do these tests, and also improves maintainability. See Subranges for more discussion.

Non Apply-To-All (a2a) equations now allow the use of dimension names in equations, making it easier to set multiple entries to the same equation. See Creating Arrayed Variables and Arrayed Equation editing dialog for more details.

Filling in new array elements

An option has been added to the Array Editor dialog box to duplicate array elements. This allows the expansion of arrays by replicating non a2a equations from the specified source (for example repeating a constant value). See also the Array Element Duplicate dialog box.

Graphical improvements

Graphicals now have an option to repeat changes made to a y value for all following y values when changing values in a table as described in Graphical Function Tab. This makes it easier to change a number of values at once, especially on the interface.

The Graphical input (Interface) has also been extended to allow control over how the dialog first displays (graph or table) and whether the interface user can switch between them.

Color palettes for global graph styles

We have added some useful color palettes to the Global Graph Styles Properties Panel. This makes it easier to change the sequence of colors displayed in graph.

Sensitivity and optimization selection on the interface

When selecting sensitivity or optimization as a button Actions (Interface) it is now possible to select which sensitivity or optimization specifications to use.

Improvements to the Parameter Control Window

The Parameter Control Panel now allows you to reorder the entries and keep them in place as you reset inputs and after saving and reopening a model. This makes it much easier to keep track of changes that are being made in the current run.

It is also possible to control graphicals directly from this panel, in addition to controlling them from the Results Panel. This makes it possible to temporarily change a graphical without entering Stella Live or using the interface, and also keeps all the changes in one place.

Setting variable colors by tag

The color and fill color displayed by variables can be set by tag from the Model Style Properties Panel. This allows you to customize your model appearance without changing individual variables and has the advantage that changing the tag for a variable from the Documentation Tab of the properties panel is all that is necessary to change its color.

In 3.6.1

Explicit Array Ranges

The notation used in SUM in other array operations can now include dimension_name.* instead of just *. This removes ambiguity and allows more flexibility in operations involving differently arrayed variables. For example the expression

SUM(price_of_all_products[AllProducts.*] * (sales_dairy[AllProducts.*] + sales_soup[AllProducts.*]))

will give revenue from dairy and soup products, assuming those are included in AllProducts. Whereas

SUM(price_of_all_products[*] * (sales_dairy[*] + sales_soup[*]))

will be marked as an error requiring disambiguation. The latter expression used to compute an expression using all combination of 3 different dimensions and could be orders of magnitude bigger than expected.

See Specialized Array Manipulation for more discussion.

Font Selection for Dropdown Graph and Table Selection (Interface)

You can now set the font used in the dropdown for page selection of graphs and tables as described in Graph Styles Tab

In 3.6

Variable Tags

Tags are text you an attach to model variable using the Documentation Tab. They allow you to search for and select using the Find window, export using the Export Data dialog box, or omit from the Equation Viewer. They make it easy to group and organize variables in any number of ways to apply different characteristics such as number formatting.

Array Element Display Label Imports

When importing data from the interface (published or on the desktop) it is now possible to set the array element display labels using Import as described in Actions (Interface). This allows customization of the interface to reflect, for example, the country under study.

Specifying import files for the interface

In addition to being able to import display labels, you can also provide files to be imported when a button is pressed as described in Actions (Interface). These files will be available when published and can be used to load data and array element labels for different interface configurations.

Full model navigation on interface

When using the Model View object it is now possible to have the diagram be navigable between different modules. Double clicking on a module will open it, and there are up and home buttons for navigating to parent modules just as there are when editing models.

Ghosting of Modules

It is now possible to create ghost of modules using the tool in the Model Build Toolbar. This allows you to decrease clutter in the diagram. Module ghosts can only be placed in the same model the module resides in (no cross-level module ghosts are allowed). You change connecters starting from the module to starting from a ghost of it by drawing the connector from the ghost. Similarly, it is now possible to move connectors starting from a variable and going into a module to start from a ghost of that variable by redrawing them. None of these changes have any impact on model structure and the dialog that used to appear asking if you want to continue is no longer shown.

More Find functionality

The Find window now allows you to filter for constants, non-constants, unused variables, and module outputs used to create cross level ghosts. There is also an option to select based on Tags as noted above. Also, typing in a module qualified name will show all variables in that module in addition to cross-level ghosts.

On demand control imports

On demand imports defined in the Import Data dialog box can now be set to control values, rather than replacing equations. The controlled values are treated as user controlled, and will be marked this way in the Parameter Control Panel .

Improved graph and table pasting

Graphs and tables moved from one module in a model to another will retain their content regardless of the relative location of the variables being displayed. This allows copy and pasting of graphs and tables without having to ensure that cross-level ghosts are created to support the pasted content.

Run name cleanup

When you save runs or lock runs in the Data Manager it no longer causes the run names to have increasingly large numbers. Instead, runs are named based on the number of active runs showing, with a check to be sure that the name is unique. If there are runs with numbers in the list the next run will have a number one larger. If the active runs do not have numbers, the next run will have the default number 1.

Opening data files as models

It is now possible to open csv or txt files that are set up with import data as models. This is a convenient way to generate the variables necessary to support imports, and also to just look at data. These files are open from the File Menu just as models are, but will create a new model with the variables in the file and set up the import link so that you can look at values in Stella by running the model. You can also copy and paste the imported elements to other models if you only need to import a subset of the data.

Messages for binding non-negativity constraints

When Stella prevents a negative value in a uniflow, constrains outflows to keep a stock non-negative, or constrains inflows because of a capacity constraint in a conveyor it will highlight the associated variables in yellow. In addition to this highlighting, there will now be a dropdown in the Run Toolbar that will navigate to the constrained variables. There is an option in the Preferences Dialog to turn this off. It must also be turned off in the Model Settings Properties Panel for the model you are working with.

Fewer unnecessary file changes

Modules that are saved in separate files are now only written out if they have been changed. This is intended to make working on projects with a number of different contributors easier, as there will not be any changes made to module files that are not themselves changed. See Saving Changes to Modules for a discussion of saving models to separate files.

Simpler array element naming

It is no longer necessary to use quotes for array elements that have special characters in them when editing in the Array Editor dialog box. The quotes will be added automatically when they are needed (for example in equations).

More control over table appearance

It is now possible to separately set alignment on the row and column table headers separately from the table cell alignment. See Table Styles Tab for details.

Native tooltips for buttons

An option to use the native tooltip has been added to the Button (Interface).

More control over gauge appearance

There is now an option to hide the units of measure in the Gauge (Interface).

More complete causes and uses navigation

The causes and uses entries on the Context Menu has been enhanced to show more clearly the module relationships for variables used in modules different from where they are defined.

In 3.5.1

Display labels for array elements

Display labels for array elements permit the use of more descriptive text for array labels while allowing the labels used in equations to be shorter. Display labels will appear in graphs, tables, and input devices including the Selector when configured for array selection. They can include any characters and do not need to be quoted. Display labels are defined in the Array Editor dialog box, and can also be imported as discussed in Setting Up Import Links.

Better table labeling for arrays

When you are working with Tables and add an array using *, the table title will change to the name of the variable and the entries to the names of the array elements. This is the same way that graph labeling works. This is only used when the table has single arrayed variable and a * has been selected.

New builtins to simplify parametrization of nonlinear relationships

A number of new builtins have been added. LOGISTICBOUND allows the parametrization of a transition from one value to another following a logistic (s-shaped) pattern. EXPBOUND allows the parametrization of exponential adjustment from one value to another both convergent and divergent. The two together provide the same set of choices available as the preset shapes in the Graphical Function Tab. MINSOFT and MAXSOFT allow a smooth approach to a minimum or maximum value rather than the abrupt change that results from using MIN or MAX. these functions are described in more detail in Mathematical builtins .

In addition a SYSTEMCHANGE builtin has been added. This builtin returns the system change metric reported in the Loops Panel. Like PATHSCORE, it is computed after a run completes, so should not be used as an input to any other variable. For more detail see Specialized builtins.

Units search and other find functionality

The Find window now has an option to search in units. This is a convenient way to select everything that has the same units to either change the units, or change the appearance of the variables. The search functionality also allow search for empty values, which is most useful for finding variables without documentation, an equation or units - though the latter two are also shown in the toolbar.

Performance optimization

The software responsiveness when making changes in very large models has been improved. In addition, macro definitions that contain only converters are now expanded inline to decrease memory consumption and improve performance during simulations (for more on macros see Working with Macros).

Interface grid to improve object placement

There is now an option on the Interface Settings Properties Panel to show gridlines on the interface pages. You can specify the number of gridlines horizontally and vertically and they will appear in light gray in the background. These can be useful for aligning objects.

Imported time varying data no longer held constant when modules not running

When a variable has time varying data imported, it will also use the time varying values even if it is contained in a module or sector that is not being simulated. This makes it easier to perform partial model tests. See Partial Simulation Setup for information on simulating only parts of models.

Specialized builds

We are now making available specialized builds of Stella Professional and Stella Architect for older Macintosh operating systems and x64 Linux systems. These are built from the same source as the standard releases, but may have limitations on some functionality. See Special Builds for more details.

In 3.5

Mapping between numbers and text

It is now possible to map specific numbers to words for both output and input. For example 0/1 can become Off/On. This is very helpful for presenting information, especially assumptions, in a readable way. These values will appear in graphs, tables, numeric displays and elsewhere. Working the other way, it is possible to enter words and have them be mapped to numbers in numeric inputs and other text based input devices, as well as the new drop-down input. For more information look at Manage Number-Text Mappings dialog box and Edit Number-Text Mapping dialog box opened through the Model Settings Properties Panel. Number-text mappings are added to variables in the in the Scales and Ranges Tab or the properties panel or from the Format Numbers dialog box or the Format Variable dialog box opened from the Context Menu on graphs, tables and other objects. It is also available on the Set Time Label Format dialog box allowing arbitrary text to be displayed for selected points in time. You can also set up default number-text mappings from the Default Settings Formats dialog and they will be available on new models that you create.

More find and replace options and persistence

You can now use the Find and Replace Dialog to replace text in equations in addition to modifying variable names and units. This can be very useful in adjusting array usage. The dialog content is also persistent, so when you close and reopen the model in an editing session the same selections will remain.

New input using a drop-down list of values

The new Dropdown Input (Interface) allows you to specify a set of values that can then appear in a dropdown for selection by the user. This can be used most effectively when a Number-Text mapping has been specified for the variable being used.

Better support for changing variable dimensions

Changing the dimensions of a variable will now update the places that variable is used more completely, including adding in or removing the dimension even when the variable was originally used without square brackets []. This makes it more likely the equations will remain valid, and less likely that an oversight (such as a SUM function with no []) will generate unexpected behavior.

Keep Excel files open

There is now an option on the Preferences Dialog to keep Excel files open when they are referred to during import or export operations. This is most useful for Excel files that may show a dialog (for example do you want to update data) when they are opened.

Documentation tab changes

The Documentation Tab icon will now change from to when there is content in the documentation. This makes it easier to know which variables have documentation written for them.

New Builtin functions

There are two new Builtins. The first is MATRIXINVERT which will give the inverse of a square 2 dimensional matrix or slice. This is a special array function as described in Array Operation builtins . The second, SOFTWAREVERSION is a convenience builtin to allow you to detect which version of the software is currently being used as described in Specialized builtins.

Import template provides more options

The Create Import Template dialog box now has an option to create a template only for selected variables, and also to create a time varying import template.

Find persistence and additions

The Find window will now remember your last search settings and there is also an option to find imported values and search in units.

Import All and Export All now available as menu items

New menu items have been added to the Model Menu to Import All and Export All. These are hand shortcuts with keyboard equivalent to import of export data without opening the respective dialogs.

Selecting specific columns or rows when copying tables

You can now select different rows or columns in a table to copy to the clipboard. See Importing and Exporting Data with Copy and Paste for more discussion.

Specific ranges allowed in conveyor initialization

When using arrays to initialize conveyors it is now possible to specify a range within the array so that the array size does not need to line up with the transit time. See Initializing Discrete Stocks for details.

More flexibility in managing array interdependencies

More of the cases where an equation uses a relative array position will now trace through each element allowing more complete control on these computations. Importantly, arrays that have a computed index values, and those using @ notation can now be combined with a relative index position.

Disable scrubbing on graphs

There is now an option on graphs to disable scrubbing that can be set from Graph Settings Properties Panel. This is useful for small graphs that would not be readable when scrubbing values.

Assembly option to add only ghost to model for some variables

Using ghosts, it is now possible to set up an assembly so that the ghosts it uses are automatically connected to variables with the same name in the model. See Context Menu for more details.

Importing time varying values for the interface

When importing values on the interface using the Import Data action described in Actions (Interface) if the file starts with a row or column for "Time" (or the units of measure for time) the import will be treated as time varying. See Setting Up Import Links for more discussion of the different import types.

In 3.4.1

Documentation added to Connectors and Loop Labels

It is now possible to add documentation to connecters and loop labels. The documentation is entered using the Documentation Tab as it is for variables and will display on hover. When using the Model View object on the interface the documentation will display if the option to show documentation is chosen, though Loop Labels will always display their documentation.

Comparative Tables Grouped by Run

Comparative tables can now be grouped either by variable or by run making it easier to see all variables for a given run. See Table Properties for more details.

Removing Borders on Pie Chart and Allocation Input

The Pie Chart and the Allocation Input (Interface) have a new option to keep or remove the borders between the displayed pie slices. This can help to decrease clutter.

Styling of Tabbed Graphs, Tables, and Group Input

You can now customize the appearance of the tabs used to switch between different graphs and tables (or variables for the Group Input). See Pages Styles (Interface) for more detail.

Stricter Units Checking

A strict units checking option has been added. It is on by default unless changed in the Default Settings Run Specs dialog. This option will check for dimensioned variables being used in graphicals and builtins such as EXP. The option is set on the Model Settings Properties Panel.

Controlling Initial Stock Values in Stella Live

Stocks with constant equations can now have the initial value updated from the Results Panel when using Stella Live™. This makes it easier to experiment with initial conditions.

In 3.4

Assemblies on the Exchange Finding Using Creating

In addition to the built in Assemblies that are part of Stella it is now possible to upload Assemblies to the isee exchange and use uploaded Assemblies by setting up a connection in the Preferences Dialog. See Assemblies Exchange for more discussion.

New Sensitivity Capabilities

Sensitivity runs can now set up criteria to terminate and dismiss runs based on payoff values. This allows, for example, the exploration of future behavior for all runs that match historic behavior sufficiently well. Runs that do not match are not included in the final set of reported runs. The criteria are set in the Sensitivity Termination Criteria dialog which is accessed from the Sensitivity Specs Panel.

When setting up sensitivity runs, it is also much easier to add multiple sensitivity parameters at once By using the new multiselection functionality of the Find window as described below, you can add a number of different parameters together. When adding more than one parameter the Multiple Range Specification dialog will open allowing you to specify the minimum and maximum values as a proportion of the base parameter value.

There is also new sensitivity method that samples the sensitivity parameters sequentially. This is useful for going through a large number of parameters quickly to see which have significant impact in isolation. This is set in the Sensitivity Specs Panel.

Multiple Selections for Sensitivity and Optimization

When adding variables to sensitivity or optimization specs you can now select multiple variables to add at once. This is done in the Find window which has an OK and Cancel buttons when multi selection is supported.

If you select arrayed variables you will get be able to select which array elements to use.

Improved Module Pasting

If you paste a module and it is not possible to make all of the cross level connections between variables with the existing connectors new ones will be added to be able to make the connections. Cutting and pasting a module in a model will thus rewire all of the cross level connections as required. Invalid connectors from a module to a cross level ghost may also be removed to accommodate this.

Related to this, the error message for connectors into modules that do not have a cross level connection have been improved. The connector causing the error will now be highlighted when selecting the error message from the Run Toolbar.

Controlling Array Slices

In addition to controlling variables you can now control a slice of a variable. This is useful when you want to set a default value for all elements, then override specific elements with other values. To do this use a * appropriate position in the Choose Subscript dialog box. Array slices can be used in any of the controls on the interface (except the Allocation Input) and also on the Parameter Control Panel for the model. Specific element controls will take precedence.

Filtering of Imports for Parameter Control Window

The Parameter Control Panel now has an option to filter out imported variables. This makes it easier to see which model variables have been controlled using Stella Live, the interface, optimization or directly from the panel itself

Non A2A Graphical Editor

When working with graphicals that are not apply-to-all there is now an option to open the Arrayed Graphical editing dialog. This allows you to select multiple elements of the array and edit the graphicals for them together.

Hiding Thumbnails on the Interface Page

The Preferences Dialog now has an option to hide thumbnails on the Interface Settings Properties Panel. Instead of a thumbnail just the page names will be displayed. This can simplify working with interfaces containing a large number of pages.

Pasting Variable Starts Name Editing

When you paste a variable into a model you can simply start typing to change the name - there is no longer any need to select the name first.

Highlight Point to be Moved in Graphical Editor

As you move the pointer inside of the Graphical Function Tab the point that will be moved by a click is highlighted making easier to see what will happen.

More Intuitive Run Behavior when Switching out of Stella Live

If you switch out of Stella Live by using the Stop Stella Live command on the interface or switching to edit mode on the model and make a run, the next Stella Live run will reuse the run number for that run. This prevents duplicate runs with the same result appearing.

Clearer Marking of Invalid Graphicals

When you add elements to a non apply-to-all graphical array the missing elements will be highlighted rather than contain a default graphical.

Results Panel Highlight on Hover

When you hover over a variable on the legend of the Results Panel the associated graph line will be highlighted.

Reorder Array Elements

You can now drag to reorder array elements in the Array Tab rather than having to delete and add them.

Binary Data Files (Stella Enterprise only)

There is now an option to store model runs in a binary format. This is intended for very large models and can be set model by model in the Data Manager.

Comma Decimal Command Prompt (Stella Simulator only)

There is a new command line option -cds to write to export data using , as the decimal delimiter. See Stella Simulator Arguments for more details.

In 3.3

Optimization on the Interface

It is now possible to run optimizations on the interface. To do this the optimization is first set up on the model as described in Optimization and Calibration and then executed on the interface using Run Optimization as described in Actions (Interface).

Optimization and Sensitivity Status Display

The Display Time (Interface) object now has an option to show the progress on sensitivity and optimization runs. This is a convenient way to let users know that work is being done in the background.

Selectors active During Optimization

When using a Selector for either a placeholder or array dimension you can now change the value of the selector while an optimization is running. You can also double click on a minimized graph or table without stopping the optimization.

Tracing Optimization Overflows

When there are divide by 0 or other overflows during an optimization there is now an option to stop the optimization with the value generating the error preserved to understand why it happened. This can be set on the Optimization Specs panel when running Powell optimizations as described in Optimization Methods.

Improved Zoom

Zoom is now based on selected content, making it easier to select and then zoom in on a particular area in a model.

Connector Setting Added to Model Styles

You can now set the thickness and polarity font for all connectors in a model in addition to changing specific connectors. For details see the Model Style Properties Panel

Allow Updating of Multiple Formats in Tables and Graphs

When using the Format Numbers dialog box an Apply button has been added that allows you to make changes to multiple number formats without having to reopen the dialog.

Group Inputs Now Work with Placeholders and Wildcards

You can now use placeholders and wildcards in the Group Input (Interface) just as you can with other input and output objects.

Better Array Editing Messages

In the Array Editor dialog box dimension names that conflict with a model variable or builtin function (dimension names need to be globally unique ) will now put up a dialog letting you know there is a conflict.

Improved Diagram Rendering

Model with long runs and noisy data should render more quickly with Stella Live and in Suggest View improving usability.

In 3.2.1

Expandable Scale Option on Graphs

Graphs now have an option to rescale if the specified bounds are exceeded. This is useful for setting bounds that are usually right, but still having the graphs display all information when they are exceeded. See Graph Series Property Panel. The selection of scales when only one of a minimum or maximum is set have also been adjusted to work better for most cases.

Sliced Graphs

Sliced graphs allow you to overlay value from different time periods (most commonly years) for a single variable to see how one period compares with another. See Graph Settings Properties Panel for details.

Exporting, Importing and Duplicating, Sensitivity, Payoff and Calibration Specs

To make it easier to move definitions between models, and to duplicate specs and make modifications Import, Export and Duplicate button have been added in the Sensitivity Specs Panel, the Payoff Specs panel and the Optimization Specs panel.

Simplified Calibration Payoff Setup

The Payoff Specs panel has been updated to make setting up a calibration payoff much simpler.

Scientific Notation in Formatted Numbers

Scientific notation has been added as an option when formatting numbers and is set in the Scales and Ranges Tab of the properties panel.

Graphical input axis labeling on the interface

Graphical inputs on the interface can now have axis labels specified in the Graphical input (Interface) panel.

Easier Export File Creation

You can now add a file for export without having to first create it. See Export Data dialog box for details.

Extending Percentile Builtin

The PERCENTILE builtin can now take an optional fourth argument which makes it possible to find the percentile value of an attribute based on volume (for example median age based on population). For more details see Array Operation builtins .

Selecting Identically Arrayed Variables

A new option has been added to the Context Menu on the model that allows you to select all variables arrayed the same way as the selected variable, making it easier to manipulate arrays.

In 3.2

Assemblies SIR Workforce

Assemblies provide a new way to get started building models and easily add commonly used structures into ongoing modeling work. They work with suggested completions that fill in equations when possible or make suggestions based on the structure as you have drawn it. There is more information in Assemblies.

Note Use the button on the Mode Toolbar to open the Assemblies Panel and begin working with Assemblies.

Suggested Completions

Suggested completions smooth the addition of simple equations based on the connections you make on the model diagram. They are turned on and off from the Mode Toolbar and are very helpful when working with Assemblies. Details on the way suggested completions work are in Completion Support.

Multiple Selections and Arrays Slices in the Results Panel

The Results Panel has been extended to work with multiple variables and also has the ability to show all elements on an arrayed variable. This makes it very easy to see two or more variables next to one another to aid understanding and debugging model behavior.

Variable Replacement

When there are two variables that have the same meaning it is now straightforward to replace one with the other without needing to edit equations, graphs, or tables by dragging one on top of the other. This is very helpful when combining assemblies. See Deleting and Replacing Model Items and Data.

Export of Multiple Runs from Interface

An option has been added to export values from multiple runs on the interface making it easier to provide comparative summaries of different experiments conducted by published simulation users. See the action descriptions for more details.

Flipping Parts of Diagrams

There is now a function to flip the selected elements of a diagram either horizontally or vertically. This is accessed through the Context Menu.

Improved Units Suggestions

The suggest units functionality - from either the Equation Tab of the properties panel or the Units Entry popup will now look at both the equation for a variable, and equations using a variable, to try to determine the best units to suggest. When it is possible, units are also set automatically while working in Suggest view.

Improved Builtin Organization

The categories builtins are put into have been reorganized - in both the software and the help. See Builtins for the organization and Equation Tab for selecting them in the software.

Saving Diagrams to Images

The Save As menu on the File Menu will now allow you to save the current module picture as a vector (pdf, svg) or raster (png, jpg, gif, bmp) image file.

New AGECOUNT Builtin

The AGECOUNT builtin provides a convenient way to look inside conveyors and queues (as well as non-negative stocks when using cycle time integration) returning the quantity of material falling within an age rate. See Discrete builtins for details.

New Leakage Option

For conveyors with inflows that at spread evenly or based on a distribution there is now an option on linear leakage to leak the specified fraction of material regardless of the time the material spends in the conveyor. See Equation Tab

In 3.1.1

Module Indicators

You can now specify a variable to be displayed for a module allowing glimpses into behavior of the modules. The selected indicator variable can be a placeholder and will be displayed on the diagram just as results are displayed for other variables and in the Results Panel. See Module Properties Tab for details on setting these.

New Shortest Path Builtins

The new builtin SHORTESTPATH will compute the traversal sequence that will minimize the cost of getting from 1 node to another for a given adjacency matrix - where cost can be in distance, time or dollars. There is a corresponding builtin TRAVERSALCOST that computes that cost of such a path (or any path) through the adjacency matrix. See Array Operation builtins for more details.

Add Ending and Beginning Options to Find and Replace

The Find and Replace Dialog now has an option to change only the beginning or ending of variable names.

Include Polarities from Vensim Models

If you open a Vensim model with polarities on the connectors those will now be brought across to Stella.

Improved Resizing of LTM Graphs

Increasing the size of the graph in the Loops Panel now allows smooth adjustments.

In 3.1

Measuring System Movement in LTM

A new measure of activity during a simulation is now available to make it easier to understand which loops are driving behavior during periods of significant change. The System Change and Contributions are on the Loops Panel and there is more discussion of the concepts in the Loops That MatterTM Overview.

Displaying Array Operations in Tables and Graphs ,

When you select an arrayed variable for use in a table, graph, or other output object you can ask to display the sum, min, max or mean across a slice of the array in addition to specific array elements. See Choose Subscript dialog box for the details of doing this.

It is also possible to set up array definitions so that the sum, min, max, and mean can be selected when using a Selector or looking at values in the Results Panel. These are specified in the Dimension Configuration dialog box.

Find and Replace

There is now find and replace functionality that allows you to change the names of all variables in a selection, or for the entire model. Use Shift+Ctrl+F or Ctrl+H (Windows)/Shift+⌘+F (Macintosh) to open the Find and Replace Dialog.

To be consistent with most other applications the Find (and Find and Replace) functionality is on the Edit Menu, and not on the Model Menu as it used to be.

Time Range in Tables

You can now optionally specify a start and stop time for tables. This makes it possible to show value for a subset of a runs range. See Table Properties for details.

Navigate on Undo/Redo

When using Undo (Ctrl+Z/⌘+Z) or Redo (Ctrl+Y/⌘+Y) the thing that was changed will not be highlighted (navigating to the appropriate module or page if necessary) and the associated panel open when one thing was changed. In some cases, because of cascaded dependent changes or changes applied to multiple selections, it may not be possible highlight anything.

Equation Editor Improvements

The autocomplete function now works even when there is no space after the cursor. In addition, selecting [ when inside an existing [] pair will replace the content inside the [] with whatever is provided by the Choose Subscript dialog box.

Multi Selection Panels

More properties can be set on the panel when multiple objects are selected. For example when working on the interface you can select multiple sliders and set the ranges on all of them at the same time. See Objects and Properties for more discussion.

Flow Valve Resizing

Flow valves can now be resized just as other building blocks can. The Model Style Properties Panel now allows the default size of flow valves to be set separately (they used to be the same as converters) as does the Default Settings Diagram dialog.

Model View and Story Content Positioning

It is easier to position content in Model View objects (including Storytelling pages) using arrow keys.

New Builtin

There is a new builtin NORMALPINK (see Random builtins ) that can be used to generate correlated noise and simplifies opening of Vensim models.

In 3.0.2

New Builtins

A number of new builtins have been added, and others extended to provide more behavior.

The new RUN builtins RUNCUM, RUNMAX, RUNMEAN, and RUNMIN make it easy to pull values of a variables from the current run, or from other runs much like the HISTORY builtin. It is also possible, when using time varying imports (Import Data dialog box) to pull future values for the current run. See Data builtins for more detail.

The new LOOKUP builtings LOOKUPMIN and LOOKUPMAX make it easy to find the maximum or minimum in a graphical. The existing builtins LOOKUPAREA and LOOKUPMEAN have also been extended to take a variable number of arguments to simplify equation writing. See Specialized builtins for more detail.

The STEP builtin now takes optional arguments for duration and interval maxing it easy to create a temporary step, or a repeating step. See Test input builtins for details.

Using Dimensions to Restrict Outflows

When restricting outflows from queues to content with certain attributes you can now use a dimension name in addition to numbers to specify which attributes to filter on. This is a convenient way of dispatching from an non-arrayed queue to arrayed stocks. See Queue Computation for more discussion.

Using Arrays in Sensitivity Setup

It is now possible to specify arrays for parameters when setting up sensitivity. This makes it easier to specify a number of parameters, and to change array sizes without having to modify the sensitivity settings. For details see Sensitivity Specs Panel for mode detail.

Better Vensim® Model Translations

The translation of Vensim models with multiple views now breaks the model up into modules and those the interconnection between the modules on the top level model. This makes it easier to work with larger models. See Opening Other Models for details.

Importing External Run Data into Modules

When importing data as a run from the Data Manager using the Load External Data dialog box there is now an option to match unqualified names to variables within modules. This is useful when the data files list variable without module qualifications as might happen with values exported from a Vensim model.

Updated Panel Buttons

The ^ panel button has been replaced with [ to make it easier to work with arrays. See Equation Tab for details.

Exporting Results from the Interface

Then exporting results from the interface the user will now be prompted for the name to export to. See Actions (Interface) for details.

Setting Arrays on Flows

Outflows from non-arrayed stocks can now have arrays set.

In 3.0.1

Stella live on graphical change

Now when you make graphical changes in the Graphical Editor dialog box Stella Live will update the module results as you make changes to the graphical. If you uncheck the option for "Stella Live update on drag" in the Model Settings Properties Panel changes will not be applied until you click on the OK button.

Scales and ranges settings inherited for sensitivity and optimization

The minimum and maximum set in the Scales and Ranges Tab are now used automatically when adding a variable in the Sensitivity Specs Panel or Optimization Specs.

Lock icon changed to tooltip

The lock icon that appeared in the upper right corner of objects locked on the interface has been replaced by a tooltip that indicates the object is locked. Double click or right-click and select unlock from the menu to edit a locked object.

In 3.0

Interface by Design

We have dramatically simplified the process for building high quality interfaces by providing a number of Designs that you can bring into your interface and then customize. See the overview in Building Interfaces as well as the discussion in Designs. You can even create your own Designs from the Interface Menu (Interface) or by saving an Interface to the Custom Design directory specified in the Preferences Dialog.

Check out the quick tutorial on our tutorials page.

Interface Templates and Locks

You can directly edit content on Templates by double clicking on it from an Interface page. Right clicking will also take you to the Template page. Locked content will now display a icon in the upper right corner (right-click to unlock).

New Shapes

A number of new shapes have been added for display on the interface, including arrow, star, ellipse, cloud, and speech bubbles. You can also put a corner radius on rectangles. See Shape (interface) for more detail.

Web Safe Fonts

To improve consistency in publication there is now an option (on by default) to use font faces that are available on almost all computers. Selecting fonts from the smaller list will make interface users see the same thing you do. The option is set in the Preferences Dialog.

Better Page Resizing on the Interface

Changing the Interface page size will now scale all content to the new size. See Interface Settings Properties Panel for more details.

Interface Page Descriptions

You can now add a description to each interface page. The descriptions display when you hover over the page in the Pages Panel (Interface). You set the description in the Interface Settings Properties Panel.

Placeholder and Array Selection on the Model

You can now put Selector controls directly onto the model diagram. This makes it convenient to go through placeholders or array elements in graphs and tables.

More SVG graphics support

You can now use SVG files in the Graphics box, Button (Interface), and other places that take images.

Discrete Optimization

There is a new option for discrete optimization that allows you to find optimal values that are integers or otherwise quantized. See Optimization Methods for more detail.

Improved Navigation Control Styling

The Navigation Control (Interface) now provides more options on appearance and layout including spacing between tabs and padding of text within them. The naming conventions used in the panel have also be simplified.

More Control over Numeric Displays

You can now set the label position and control the border and appearance more precisely for Numeric Displays as detailed in Numeric Display Properties. In addition, numeric displays on the model and interface now look the same.

Tooltips for Buttons and Annotations

You can now add tooltips to Button (Interface) that will display with the user positions the cursor over the button. In addition. Annotation Button (Interface) can be configured to display when the mouse moves over its button rather than requiring the user to click on the button.

Run Name Control

You can now set the run name in the interface using the Button (Interface).

It is also possible to set the beginning of the run name in the Model Settings Properties Panel. Using this instead of Run1, Run2, and so on you can have Test1, Test2, or another prefix displayed on tables and graphs.

In additions, for sensitivity runs that are specified using an external file you can include the run name in addition to parameter values. This makes it easy to name the runs according to their inputs (Low, Medium, High and so on). For details see the Sensitivity panel.

Arrays in Tables

Tables now allow the use of a * to represent all elements of an array that will update when the array definition changes. See Table Properties for discussion.

Graphics Frame Transparency

There is now a transparency setting on Graphics Frames (interface only). This makes it easier to achieve different visual effects. See Graphics Properties

More Control in Run by Module

The options to run by module now allow you to turn on and off nested modules when you change the running state of a module on both the model and interface. This is done in the Partial Simulation Setup panel.

The software will also keep track of changes made to which modules are running on the interface and continue to run only those modules on the model until inputs are restored or the modules are switched on or off directly.

Better Control of Find

You can now search for exact matches in the Find window by using "" around a string, as well as names that start or end with something. Starting and ending spaces are also recognized to simplify looking inside of names.

Improved Cross Level Marking

It is now straightforward to mark variables as both inputs and outputs for making cross level ghosts. This is useful when working with modules that are saved separately and can be modified in that way. The is set from the Context Menu for a variable. There is also a new option added to the Model Settings Properties Panel that will suppress module connection errors.

Simplified Equation Error Fixing

Equations that are either missing inputs, or have extra inputs, can now be fixed by clicking on the error message in the Equation Tab. The related connectors will be added to, or removed from, the diagram.

Performance Improvements

Simulation speed has been increased for larger models and the long wait time that sometimes occurred as a simulation was beginning reduced. LTM has also been improved for large models requiring algorithmic search to detect loops.

Updated Data Manager

A Restore button has been added to the Data Manager dialog and loading parameters from a run now opens the Load Parameters dialog giving you more control over which equations are overwritten with values from the run.

More Export from Interface Options

The Export Parameter Values selection from Actions (Interface) for Button (Interface) now allows you to specify which parameters in addition to those that have been changed to export. This allows the creation of more complete import data sets. There is also an option to export only a single value.

There is also a new action to export the variables in a Table making it easier to keep exports up to date with your needs.

More Multiplayer Options

An option has been added to prevent multiplayer games to continue when a player drops. This is set in the Multiplayer Options dialog, which has also been improved for usability.

Improved Browser Control

There is now an option on the Publishing Options dialog to prevent the current page from displaying in the URL for a published Sim App. This prevents users from skipping pages and also makes your interface appear as a single page to the browser so that the browse's back button will leave the interface altogether rather than navigating within it.