SageModeler is a tool for creating models of phenomena. It allows you to take your current ideas about how something works and design a runnable simulation without needing to write equations or do traditional coding. By making it possible to map your ideas about a phenomenon to a working computational simulation you can test, share, evaluate, and revise your model (and your understanding of the phenomenon).

SageModeler makes possible three different types of modeling, from the basic diagramming of the structure of a system to the creation of static equilibrium or dynamic time-based models.


As a diagramming tool, SageModeler allows students as young as elementary age to create their representation of a system. Students select images for each variable and link them with cause-and-effect arrows. This is a great place to start for younger students or when first approaching a driving question to get the brainstorming going!

Static equilibrium modeling

static equilibrium model
In static equilibrium modeling the effects of independent variables are instantly carried through the model, resulting in a new model state. Once you define relationships between variables the model can generate output. Relationships are defined using words and graphs. For example, in this simple model, if number of people vaccinated is increased, it causes the people with flu to decrease. Bar graphs represent the value of each variable in the model based on the current input settings.

Dynamic time-based modeling

dynamic time-based model
In dynamic time-based modeling, the output shows how the system changes over time. Notice how the graphs are now line graphs rather than bar graphs to indicate change over time rather than just a single value as represented by the bar. New types of variables and relationships become possible. Collectors “remember” their previous value and increase or decrease each step of the model calculation, while transfer variables can move amounts between collectors. Feedback becomes a prominent feature of many dynamic time-based models.


Try a step-by-step tutorial by opening this Getting Started document and following the instructions. Also available en español.