ymmsl2svg: Visualize yMMSL workflows
Visualize yMMSL workflow as Scalable Vector Graphics (SVG).
This tool takes a yMMSL model (from a v0.2 yMMSL file) and generates an SVG image to represent it.
Features
- Visualize the coupling diagram for yMMSL (sub)models
- Call/release (a.k.a. macro-micro) coupling
- Dispatch coupling
- Visualize component ports: F_INIT ports are drawn on the left side of a component as an open diamond, O_F ports on the right side as a closed diamond, and O_I and S ports on the bottom as respectively a closed and an open circle.
- Visualize model ports: F_INIT ports on the left side of the model, O_F ports on the right side. Model O_I and S ports are not (yet) supported.
- Visualize "multi-cast" conduits, where one output port sends to multiple input ports.
- Draw conduits with filters.
Note that not ymmsl2svg cannot visualize all valid yMMSL configurations, see
Roadmap for a brief overview of missing functionality.
Examples
Click to open the image in a new tab and enable interactive features, such as tooltips with the port name when hovering over a port.
Installation
ymmsl2svg is available on PyPI and can be
installed with pip:
pip install ymmsl2svg
Usage
# Create 'workflow.svg' image from the root model in 'workflow.ymmsl'
ymmsl2svg workflow.ymmsl -o workflow.svg
# Show supported options and settings
ymmsl2svg --help
Live viewer
ymmsl2svg-live shows the diagram of a yMMSL file in your browser and re-renders it
every time you save the file, so you can edit yMMSL in your favourite text editor with
a live preview next to it. If you save a file with errors, the error message appears
above the last working diagram. If there is no working diagram yet, you see just the
error until you fix it. It works on Linux, macOS and Windows (including WSL).
To use it on your own computer, run:
ymmsl2svg-live workflow.ymmsl
This opens the viewer in your browser. If no browser opens (for example on WSL), copy
the address printed in the terminal, http://127.0.0.1:8765, into your browser. Use
--no-open-browser if you don't want a browser to open automatically. If that address
is already in use, choose another number with --port, for example --port 12345.
Use --debug to enable debug visualizations. Run ymmsl2svg-live --help for all
options.
Roadmap
ymmsl2svg currently cannot visualize any valid yMMSL model yet, this section
provides a brief overview of missing features that we would like to implement in the
future:
- Missing yMMSL features
- Command Line Interface
- Allow selecting a specific model in the yMMSL configuration (currently only the root model is visualized).
- Allow changing settings / parameters from the Command Line interface.
- Additional features
- Interactive highlight of connected conduits when hovering over components or ports.
- Add an option to draw parallel components under eachother.
1: The SVG generation currently fails for models containing
this.
2: An SVG is generated for models containing this, but a warning
is logged and the visualization is not complete.
Legal
Copyright 2026 ITER Organization. The code in this repository is licensed under the Apache-2.0 license
Metadata
Release files for ymmsl2svg 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ymmsl2svg-0.1.tar.gz | 39.5 kB | With provenance | Details for ymmsl2svg-0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ymmsl2svg-0.1-py3-none-any.whl | Python 3 | none | any | Details for ymmsl2svg-0.1-py3-none-any.whl |
Total release size: 73.4 kB
Release files / ymmsl2svg-0.1.tar.gz
| Download URL | ymmsl2svg-0.1.tar.gz |
|---|---|
| Size | 39.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
43a9c554c61c35b64bf8875d19e5ab66e03abef44b805cc89b4c499272854381
|
|
BLAKE2b-256 checksum How to use checksums |
86dbebeae91064bc4aed8d070bd94beabf7f40ff731e7e7b33bc465925a45f4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logRelease files / ymmsl2svg-0.1-py3-none-any.whl
| Download URL | ymmsl2svg-0.1-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b1f1124428fba437c14796b70b7bfbbd96bab8cc51e57063d664d06612a4c80
|
|
BLAKE2b-256 checksum How to use checksums |
c29f7d2a246d6295613ab637a841c3d3ec9a3b5d743fc45d23eee513b66953c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logSecurity for ymmsl2svg 0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for ymmsl2svg-0.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.