Package: orange-system-dynamics
Orange3 System Dynamics Add-onThis is an add-on forOrange3allowing to
perform simulation usingSystem Dynamic Modeling(SDM) mechanism.Orange Data MiningODM(Orange Data Mining) is an open source machine learning and data
visualization tool. It allows to build data analysis workflows visually, with a
large, diverse toolbox.We develop a list of widgets to be used in ODM, each widget has a functionality
to be mainly applied forSystem Dynamic Modeling.InstallationOrange3and theSDMAddon must be installed in the samePythonenvironment.Orange 3pipinstallpyQt5PyQtWebEngine
pipinstallorange3System Dynamics Addonpipinstallorange-system-dynamicsUsageOrange3 can be run using the following command:orange-canvasorpython-morange.canvasNew widgets should appear in the toolbox bar under theSystem Dynamicssection.Widgets DescriptionSystem DynamicsSystem dynamics (SD) is an approach to understanding the nonlinear behaviour
of complex systems over time using stocks, flows,
internal feedback loops, table functions and time delays.Load Simulation WidgetLoad Simulationwidget is used to load simulation models in .mdl or .xmile format,
it outputs the model for Simulation.Simulation WidgetOnce the model is loaded, theSimulationWidget is updated to show model's
variables grouped by:Time Controls: contains the initial time, the final time and defined time
stepStocks: contains all model’s stocks, can be used to change any stock’s
initial valueAuxiliary Values: contains  all the auxiliary values, can also be changedOnce the Run Simulation button’s hit, the model is run, the widget outputs an
Orange Data Table, we use theLine ChartWidget to visualize results of
simulation:Other widgets have been used to perform step by step execution of simulation, by simply running the
results throughForm Timeserieswhile indicating Time as the index variable:Next, usingTime Slicewhich was adapted to commit a cumulative step by step simulation
to the Line Chart:In another example; we run the simulation in two different regions:Paris (France)Algiers(Algeria) and Casablanca (Morocco)with different simulation parameters each time, we variate the total population,
contact infectivity and the stocks (infectious, recovered, susceptible).
We simply add the results together using `Concatenate.We can also show the results in Geo Map, after adding Latitude and Longitude information:Agent Based ModelAn agent-based model (ABM) is a computational model for simulating the actions
and interactions of autonomous agents (both individual or collective entities such as
organizations or groups) in order to
understand the behavior of a system and what governs its outcomes.State Machine WidgetState Machinewidget is used to read a .yaml file containing a statemachine.Agent Widget̀Agent` widget creates an agent from a statemachine, it outputs the model used for
creating multi-agent system environment.Multi Agent Environmentis used to define interactions between agents
in a multi-agent system configuration.Once the Run Simulation button’s hit, the model is run, the widget outputs an
Orange Data Table, we use theLine ChartWidget to visualize results of
simulation:Azure Digital Twin ModelAzure Digital Twins is an Internet of Things (IoT) platform
that enables you to create a digital representation of
real-world things, places, business processes, and people.Load DTDL WidgetLoad DTDLis used to load a JSON file containing the digital twin interface,
it generated a Twin Model to be used for creating Digital Twin(s).Twin WidgetTwinwidget is used to create/update a twin from its model following DTDL.Azure Twins WidgetAzure Twinsis used to retrieve available twins in MS Azure platform,
it needs a configuration file containing tenant id, client id and client secret and twins endpoint.Here's a workflow example for using Orange widgets to create/update a digital twin from its DTDL description:We can visualize our instance in aData Table: