Simulation
Microstat uses a discrete-event simulation (DES) engine written in Rust to simulate how work items flow through your process model.
Running a simulation
- Open a scenario in the canvas editor.
- Click Run in the header.
- Choose simulation parameters:
- Mode: simulate until a certain number of units complete (
units) or until a time limit is reached (time). - Value: the target unit count or time limit.
- Time unit:
min,hr,day, etc. - Reps: number of independent simulation runs (more reps = more stable statistics).
- Mode: simulate until a certain number of units complete (
- Click Run. Results appear in the results panel.
Distributions
Set the service time distribution for each Task node, and the arrival distribution for the Start node, in the simulation panel (click the sim icon on a node, or press I).
| Distribution | Parameters | Example use |
|---|---|---|
constant | value | Fixed processing time (e.g. always 5 min) |
normal | mean, std | Normally distributed service time |
exponential | rate | Memoryless arrivals (classic queuing) |
uniform | low, high | Any value equally likely in a range |
poisson | rate | Count-based arrival process |
lognormal | mean, sigma | Right-skewed service times |
gamma | shape, scale | Flexible positive-value distribution |
weibull | scale, shape | Wear-out or reliability modeling |
triangular | low, mode, high | Three-point estimate |
Output metrics
After each run, Microstat reports:
| Metric | Description |
|---|---|
| Units completed | Total work items that reached an End node |
| Throughput | Units completed per time unit |
| Avg cycle time | Mean time from arrival to completion |
| Avg queue depth | Mean number of items waiting at each Queue node |
| Avg resource utilization | Fraction of time each resource was in use |
When you run multiple reps, results are averaged across reps. Individual rep results are also available.
Resources
Resources model shared constraints — a person, machine, or license that can only be used by one task at a time (or a limited number).
Add resources in Manage Resources (M), then assign them to Task nodes via the node's resource panel. A task will block until the required resource is available.
See Resources for details.