Config format
Scenarios can be exported and imported as .conf text files. The format is human-readable and version-control friendly.
Overview
A .conf file is divided into sections, each preceded by ---. Each section contains a different part of the model.
Comments start with #.
# My process model
---
S:Intake
T:Review
T:Approval
Q:Buffer
E:Done
---
Intake ~ exponential(rate=2), constant(value=1)
Review ~ normal(mean=5, std=1)
Approval ~ lognormal(mean=2, sigma=0.5)
---
Intake -> Review
Review -> Buffer
Buffer -> Approval : 0.8
Buffer -> Done : 0.2
Approval -> Done
---
R:Analyst $50/hour #4a90d9
R:Manager $100/day
---
Analyst(1) -> Review
Manager(1) -> Approval
Nodes section
One node per line: <prefix>:<label>
| Prefix | Type |
|---|---|
S: | Start |
T: | Task |
Q: | Queue |
E: | End |
Distributions section
One distribution per line: <label> ~ <dist>
- Task nodes:
<label> ~ <distribution> - Start nodes:
<label> ~ <frequency_dist>, <severity_dist> - Queue and End nodes have no distribution.
Distribution syntax: <name>(<param>=<value>, ...)
| Distribution | Parameters |
|---|---|
constant | value |
exponential | rate |
normal | mean, std |
uniform | low, high |
poisson | mu |
lognormal | mean, sigma |
gamma | shape, scale |
weibull | scale, shape |
triangular | low, mode, high |
Connections section
One connection per line: <from> -> <to> or <from> -> <to> : <probability>
Review -> Approval
Review -> Rejected : 0.1
If probabilities are omitted, they default to 1.0. When multiple connections leave the same node, probabilities should sum to 1.
Resources section
One resource per line: R:<name> $<cost>/<period> #<hex-color>
Cost and color are optional.
R:Analyst $50/hour #4a90d9
R:Manager
Resource allocations section
One allocation per line: <resource_name>(<count>) -> <node_label>
Analyst(1) -> Review
Manager(2) -> Approval
Validation errors
If a .conf file contains errors, the import will fail with a message describing the problem — for example, an unknown distribution name or a connection referencing a node that doesn't exist.