Skip to main content

Type it. See it appear. Watch it animate.

Project description

kymostudio

Type it. See it appear. Watch it animate.

Install

pip install kymostudio
# or
uv tool install kymostudio

Convert (CLI)

kymo path/to/diagram.kymo              # → path/to/diagram.svg
kymo path/to/diagram.kymo --animate    # → path/to/diagram-animated.svg
kymo path/to/diagram.kymo --figma      # → path/to/diagram.figma.js
kymo path/to/diagram.kymo --excalidraw # → path/to/diagram.excalidraw
kymo path/to/process.bpmn                 # → path/to/process.svg (BPMN 2.0)
kymo path/to/diagram.kymo out.png         # render, then rasterize to PNG (resvg)
kymo path/to/diagram.kymo out.png -s 2    # 2× resolution
kymo path/to/image.svg out.png            # rasterize an existing SVG
kymo path/to/image.svg                    # → path/to/image.png
kymo lint path/to/process.bpmn            # report BPMN structural + import issues

PNG output rasterizes via kymostudio-core (the shared resvg engine), installed automatically as a dependency.

See samples/ for complete example .kymo 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/formats/bpmn/ for the BPMN 2.0.2 normative reference and the element mapping (import + export).

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.kymo").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

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.4.3.tar.gz (383.4 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.4.3-py3-none-any.whl (94.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kymostudio-0.4.3.tar.gz
Algorithm Hash digest
SHA256 92ab02bb27c91873a4462f35bcbef18547b1c5dcb5091d09770734c72ce408aa
MD5 73ad2cafa803e2b6a3c3763e32f3b6f0
BLAKE2b-256 a3e93fa6a6e9375d9124ece22ff6c79d1bbb936afcd1a4aaf584b0b3f731c3d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: kymostudio-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 94.6 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.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b2fa0b4b7424822680629fd96d75ebf62c2ba70653686f67edf2fb95623ba4a7
MD5 f5fea201a6e6d9c1599228b02c6b20f7
BLAKE2b-256 4277c30a7504e92d26c02e748a1fb8945412724c542a7a4d8e0c19bc5d4ce23b

See more details on using hashes here.

Provenance

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