Skip to main content

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

Project description

kymostudio

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

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.2.tar.gz (273.6 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.2-py3-none-any.whl (76.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kymostudio-0.2.2.tar.gz
  • Upload date:
  • Size: 273.6 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.2.tar.gz
Algorithm Hash digest
SHA256 2393364d5542036805dfd67732e882ab24f8124c215b52f366355d2f8194a05a
MD5 22a35bfbed5685b26f2d5975b01c8d20
BLAKE2b-256 37958e9f1749cceadaff5399d42bfe57b705520581d5641a9bb689f9083d5150

See more details on using hashes here.

Provenance

The following attestation bundles were made for kymostudio-0.2.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: kymostudio-0.2.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 39ccccf51f7a672beb8b46abe548efd1586a4a1872cc13c4f7b3b9341b5f4df2
MD5 13bc1439124b84a751d50895b51e358f
BLAKE2b-256 6636d522c543e6e3bf28754b6b3b2cacb998d9d5cff2413f353df5392f1f9026

See more details on using hashes here.

Provenance

The following attestation bundles were made for kymostudio-0.2.2-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