Config format
You can export and import scenarios as .conf text files. The format is human-readable and version-control friendly, making it easy to track changes, diff models, or script bulk edits.
Who it's for
The .conf format is intended for advanced users who want to:
- Store process models in version control alongside other project files
- Share models as plain text files without needing an account
- Automate scenario creation or modification with scripts
Core concepts
A .conf file is the canonical serialization of a process model. Every scenario in the app maps to exactly one valid .conf file, and a valid .conf file can be loaded into any scenario. The format is designed to be diffable — each logical change (adding a node, adjusting a distribution) produces a minimal, readable diff.
The file is divided into up to five sections separated by ---:
| Section | Contents |
|---|---|
| Nodes | Node type and label for each node |
| Distributions | Arrival and service time distributions |
| Connections | Edges and routing probabilities |
| Resources | Resource pool definitions |
| Resource allocations | Which resources are assigned to which nodes |
Comments start with # and can appear anywhere in the file.
Full example
# 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
How to export a scenario to .conf
- Open the scenario you want to export.
- Click Scenarios in the top toolbar.
- Click Export.
- Your browser downloads a
.conffile named after the scenario.
How to import a .conf file
- Click Scenarios in the top toolbar.
- Click Import.
- Select the
.conffile from your file system. - The app loads the scenario and opens it on the canvas.
Imported scenarios appear as new scenarios and do not overwrite existing ones.
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 you omit the probability on a connection, it defaults to 1.0.
When multiple connections leave the same node, their probabilities must sum to 1.0. An unbalanced routing probability will cause a validation error on import.
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 the .conf file contains errors, the import will fail with a message describing the problem — for example, an unknown distribution name or a connection that references a node that does not exist. Fix the reported line and re-import.