Building Interfaces

Creating an interface allows you to share your model with others, especially those who don't have the experience to comfortably work with models in Stella's model building environment. Interfaces can range from relatively simple exploration environments, allowing the user to change one or two things and see the results, to rich interactive experiences, taking the user on a journey of discovery through multiple levels of interaction.

Prerequisites

Interfaces allow people to explore and learn from Stella models. As such, they should be designed with the user's and the information, skill, or message you want to impart as the central focus. Typically, this means having a good understanding of the model that will be used in the interface and the things that it can show.

This does not mean that the model must be complete before interface development can commence, nor does it mean that the person developing the interface needs to completely understand the model. Rather, it means that a good interface is going to bring out the lessons a model can teach, so understanding what those lessons are, or will be, is critical to successful interface development.

Terminology

In describing how to build interfaces it is useful to define a few terms.

Pages

Users interact with an interface in the same way they would interact with a web page. A page can include graphs, tables, pictures, videos, sliders, buttons, and other objects as well as navigation links to other pages. An interface, thus, is essentially a specialized web site that allows people to navigate through and explore content backed by a simulation model. By publishing an interface to the isee Exchange anyone with a web browser will have access to it, and it will work the same way it does on the desktop.

Stories

A story is a sequence of pages, each displaying some part of a model's structure. Typically, more model structure is revealed page by page as the story progresses, until, at the end of the story, everything that affects behavior is visible. For example, a stock by itself doesn't change; a stock with an inflow changes (linearly) based on that inflow; a stock with an inflow that depends on the stock changes (exponentially) based on the feedback through the stock and inflow. By revealing first the stock, then the flow, then the connection from the stock to the flow, you can illustrate the three different types of resulting behavior.

Interfaces

An interface consists of a collection of pages and stories. Each page, even though it'll be closely related to other pages in the interface, stands alone. Navigation between pages can take any form you want, although it's typical to have some sequence and hierarchy, like pages in a chapter and chapters in a book. Stories are themselves a collection of pages, but, in this case, the pages are arranged sequentially. Stories have a beginning and end, with a clear definition of the previous and next page in the sequence (but it's still possible to enter and exit stories at points other than the beginning and end).

Templates

Templates are pages that are used in other pages (including other templates). They are a way to set base content that will be used in many or even all pages of an interface. The use will never see a template directly, only the results of including the template in different interface or story pages.

Designs

To simplify the interface development process, and to improve the quality of the final product, Stella ships with a number of predefined interface Designs that you can select pages from. The designs Stella comes with are described in more detail in Built in Designs, and you can also create Custom Designs either based on those built in, or entirely different.

Steps to Laying out an Interface

  1. Get the model to the point that you understand its lessons

    Modeling is a process of discovery. You won't always know ahead of time what a model will tell you. Interfaces, on the other hand, need to build off the understanding of model behavior. While the lessons will be new to the user, they need to be designed into the interface in a clear and easy to follow way. New insights into model behavior may require an interface redesign. So, while interface and model development can proceed in parallel, maintaining room for design change during active model development is good practice.

  2. Outline a Logical Flow

    Most interfaces have a landing page, some explanatory content, and one or more paths to explore the behavior of the model as it responds to choices the user makes (or changes in model structure for stories). Laying this logic out ahead of time, even by simply sketching out the function of different pages, can be helpful. The Built in Designs can be very useful for inspiration in this phase. Choosing between using the Navigation Control (Interface) and more sequential navigation (Prev-Next) should be done at this point.

  3. Select a Design

    Look through the Built in Designs (and any Custom Designs you may have available) and select the one that best fits the aesthetic you want to achieve. The designs vary by both appearance and navigational flow. Pick the one that suits you best. You can either bring in an entire design from the Design Selection Dialog and delete unneeded pages (easiest for tabbed designs that use the Navigation Control (Interface), or bring in the pages you want one at a time. Once you bring a design page it is fully customizable.

  4. Fill out the pages

    Add in any special text, graphics, or logos you want to use. Often the designs will have placeholder text indicating what should be replaced.

    Connect the page elements (for example Slider (Interface) and Graphs) to model variables. If there are too many pages in the design you can delete some. If there are not enough you can add more (copy and paste will work well here).

    Make any necessary navigation adjustments. There you might need to add or remove tabs from any Navigation Control (Interface), or add navigation Button (Interface) in addition to the previous and next buttons.

  5. Optional - Write the stories

    Interfaces don't need to include stories, but stories are powerful teaching tools and can make the user's experience more interesting and memorable. When done carefully, each step in the delivery of the story is intuitive (but not quite obvious), while the last step, when compared to the first, would be quite surprising. An easy way to achieve this is to start with the 5 most important steps that convey your message, then add or consolidate steps until the flow is engaging and informative. Getting your prospective users to give you feedback on the story (and the rest of your interface) early on will help ensure you reach your target audience.

  6. Refine the Interface

    After you've written an interface and set it up the way you want it, make sure to try it out from a user perspective. Then you can adjust it until it's easy and intuitive to use.

  7. Publish or Present the Interface.

    You can publish your interface directly from Stella Designer using the Publish menu item on the File menu. Once published, you can let people know about it, and, as long as they have an internet connection, they'll be able to use it. You can also use Presentation mode to show it to other people without publishing it, or give the model to anyone with Stella Designer to use on their own. Other options, including the creation of standalone applications, are also available.

Additional Material

The tutorial Building a Simple Interface will take you through the mechanics of creating an interface with a story in it. Creating more complex interfaces uses the same mechanics, but more of the available objects and options. To learn more about the different objects you can use in interfaces, see Objects and Properties.