An interactive web editor for building and visualizing queueing-network diagrams. Lay out sources, server pools, and queues on a drag-and-drop canvas, then import/export the exact YAML config format consumed by the DiscreteEventSimulator — so a network can be designed visually and simulated without hand-editing matrices.
Queueing networks are normally specified as raw adjacency and service-rate matrices (network, mu, lam_params, ...), which are tedious and error-prone to write by hand. This tool turns that representation into a visual graph you can edit directly, and converts back to YAML losslessly.
- Drag-and-drop canvas (D3 v7) for placing and connecting queues and server pools
- YAML import/export — round-trips the simulator's config schema (connectivity matrix, service rates
μ, arrival ratesλ, holding costs, initial queue sizes, pool sizes) - Automatic layout — server ordering via barycentric crossing minimization to reduce edge crossings for readable diagrams
- Export to SVG and PNG for slides and reports
- Editing niceties — undo/redo, zoom, and toggleable
μedge labels
| Layer | Tech |
|---|---|
| Backend | Python, Flask |
| Parsing / layout | PyYAML, NumPy |
| Frontend | Vanilla JS + D3.js v7 |
pip install -r requirements.txt
python app.pyOpen http://localhost:5000.
Note:
app.pyis the Flask entry point. (main.pyis an unused scaffold.)
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Editor UI |
/api/parse-yaml |
POST | Parse an uploaded YAML config into editor state |
/api/export-yaml |
POST | Serialize editor state back to a downloadable YAML config |
/api/auto-layout |
POST | Compute server/queue positions with crossing minimization |