Skip to main content

Diagram-as-code DSL — declarative architecture diagrams to animated SVG/WebP

Project description

kymostudio (Python)

Diagram-as-code: turn a declarative .diagram DSL — or a standard BPMN 2.0 .bpmn file — into animated SVG / WebP (also Figma / Excalidraw).

Install

pip install kymostudio
# or
uv tool install kymostudio

Convert (CLI)

kymo path/to/diagram.diagram              # → path/to/diagram.svg
kymo path/to/diagram.diagram --animate    # → path/to/diagram-animated.svg
kymo path/to/diagram.diagram --figma      # → path/to/diagram.figma.js
kymo path/to/diagram.diagram --excalidraw # → path/to/diagram.excalidraw
kymo path/to/process.bpmn                 # → path/to/process.svg (BPMN 2.0)

See ../../samples/ for complete example .diagram and .bpmn files.

BPMN 2.0 import

A standard .bpmn file (from bpmn.io / Camunda Modeler / Signavio …) renders to SVG using the geometry in the file's Diagram-Interchange section — no layout pass runs. See ../../docs/BPMN.md for the element mapping.

from kymo import parse_bpmn, render

diagram = parse_bpmn(open("process.bpmn").read())
svg = render(diagram)

Python API

from kymo import parse, layout, resolve_alignments, render

diagram, layout_spec, external = parse(open("diagram.diagram").read())
if layout_spec:
    layout(diagram, layout_spec, external)
resolve_alignments(diagram)
svg = render(diagram, animate=True)

Develop

uv run --group dev python -m pytest -q       # run the test suite
uv run ../../playground/server.py            # local showcase + playground

License

Apache License 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kymostudio-0.2.0.tar.gz (273.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kymostudio-0.2.0-py3-none-any.whl (76.9 kB view details)

Uploaded Python 3

File details

Details for the file kymostudio-0.2.0.tar.gz.

File metadata

  • Download URL: kymostudio-0.2.0.tar.gz
  • Upload date:
  • Size: 273.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kymostudio-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ed3fff2927cf5944b3a686bc44a2a9c97c6bc4f6571985e5a9ae9c388ad210bd
MD5 d3dfa8ee0e499d80a536d72577c115b4
BLAKE2b-256 1fbe5b253751320c4d9898af1f4f20b9b3ef88bae92cdb77921f5c8198414ec5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kymostudio-0.2.0.tar.gz:

Publisher: release-pypi.yml on kymostudio/kymostudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kymostudio-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: kymostudio-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 76.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kymostudio-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84816ace423dc083b8f95ccac32e839e6ffde4b9361df1ca114f23bd2b03927b
MD5 b5059e5800fb805ebac42c4ebf5e6983
BLAKE2b-256 732eba96c7ed3e7ebe30887e0cde8ff6e5d25e769bf6ee5749f9ce5ccf18615e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kymostudio-0.2.0-py3-none-any.whl:

Publisher: release-pypi.yml on kymostudio/kymostudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page