OES JavaScript Core Simulators
Object Event Simulation (OES) is a Discrete Event Simulation paradigm combining object-oriented modeling with the simulation approach of event scheduling, see also the book Discrete Event Simulation Engineering.
The code of these OES JS simulators is available under a permissive MIT License. It can be used as a starting point for building your own simulators, which you may want to run as a frontend app in the browser, with NodeJS or in a cloud environment like Firebase, where the simulator can be executed as one or more Firebase Functions.
OESjs Core 0: A Minimal Object Event Simulator
The OESjs Core 0 simulator implements a minimal architecture for Object Event Simulation (OES), supporting models with (global) model variables and functions, object types, event types, and simple simulation experiments.
OESjs Core 1: Multiple Scenarios per Model and Parameter Variation Experiments
The OESjs Core 1 simulator implements an architecture for Object Event Simulation (OES), extending the OESjs Core 0 simulator by adding fixed-increment time progression, a seedable random number generator, a set of sampling functions from various probability distributions (uniform, triangular, normal, exponential, etc.), multiple scenarios per model, multiple experiment types per model, model parameters, parameter variation experiments, as well as persistent storage and export of experiment results.
OESjs Core 2: Activity-Based Discrete Event Simulation
The OESjs Core 2 simulator implements an architecture for Object Event Simulation (OES) that extends the OESjs Core 1 simulator by adding support for resource-constrained activities.
OESjs Core 3: GPSS/SIMAN/Arena-style Processing Network Simulation
The OESjs Core 3 simulator implements an architecture for Object Event Simulation (OES) that extends the OESjs Core 2 simulator by adding support for Processing Networks.
OESjs Core 4: Agent-Based Simulation
The OESjs Core 4 simulator implements an architecture for Object Event Simulation (OES) that extends the OESjs Core 3 simulator by adding support for Agents.
Credits
OESjs Core 1 – 4 are using:
- David Bau's seedable random number generator seedrandom.
- Jake Archibald's IndexedDB library IDB.