Skip to main content

Chemvas — Draw interactively. Automate safely. Export exactly.

CI PyPI Python 3.12+ License: MIT

English · 한국어

Chemvas is an open-source desktop canvas for chemical structures and reaction schemes, with publication-ready export and scriptable document workflows.

A benzyl alcohol oxidation scheme exported directly from Chemvas

Open the editable drawing · Get the SVG · Follow the walkthrough

Draw interactively. Automate safely. Export exactly.

  • Draw interactively. Sketch structures, insert SMILES, label reaction arrows, and align molecules on a desktop canvas. Keep working in an editable drawing with autosave and crash recovery. SMILES insertion needs the optional RDKit backend.
  • Automate safely. Compose, inspect, check layouts, and render documents from scripts. Graph edits check the source file's hash and validate the proposed changes before writing a new document.
  • Export exactly. Save SVG, PDF, PNG, or TIFF with explicit physical-size presets, including 84 mm and 174 mm column widths. Keep the editable document alongside the exported figure.

Install and draw

Requires Python 3.12+. Install with SMILES support for the walkthrough:

pip install "chemvas[rdkit]"
chemvas

For drawing and figure export without RDKit, use pip install chemvas. PyQt6 is included in either installation. Desktop installers are not available yet; the supported distribution is the Python package.

Your first reaction scheme

Chemvas walkthrough: insert structures, label an arrow, align the scheme, and export SVG

This edited walkthrough uses the real application. The drawing is a schematic illustration, not an experimental result.

  1. Enter OCc1ccccc1 in the SMILES field, click Insert, then click to place the structure. Hover over its oxygen, press Enter, and set the label to OH.
  2. Insert O=Cc1ccccc1 to the right. Choose Arrow and drag between the two structures. Double-click the arrow to add its labels.
  3. Select the scheme, then choose Edit ▸ Align ▸ Middle.
  4. Save the drawing as .chemvas. Use File ▸ Export Figure… to export Plain SVG at Fit 2-column (174 mm).

The step-by-step guide includes the label text, downloadable files, and a command-line export example. The saved drawing opens and exports without RDKit.

Work with drawings from scripts

After downloading first-scheme.chemvas, try:

chemvas inspect-document first-scheme.chemvas
chemvas check-layout first-scheme.chemvas
chemvas render-document first-scheme.chemvas --output first-scheme-rendered.svg

Rendering creates a new file and leaves the source drawing untouched. This command defaults to preset bond-length sizing; add --width-mm 174 to request a column width, or --max-height-mm 120 to reject an overly tall figure without shrinking it. Layout checks cover visible note and atom-label text, shape borders, and arrow–structure crossings, not every possible overlap in a chemical scheme.

See the document CLI guide for composition, Graph Patch, render guarantees, and limits.

For structure names and energies that stay aligned, use explicit scheme layout to arrange structure/caption blocks and keep them together as native groups.

That layout also accepts a max_row_width budget for long pathways. Use render-document --min-font-pt 6 to reject output with glyphs smaller than your chosen threshold, including subscripts; the value is not a journal preset.

In the desktop, group each structure with its notes and use Edit ▸ Arrange Scheme… to set rows, reading order, captions and optional wrapping as one undoable edit. File ▸ Export Figure… also accepts a custom width and optional height limit. Minimum-font checking is available for whole-canvas SVG and PNG.

For already-spaced drawings, layout-document with mode: "align-y" moves only molecular Y positions, keeping captions and all X positions fixed. Agents can also insert-template with native benzene/chair/regular-ring geometry and use Graph Patch set_terminal_angle for a specified terminal bond angle. Layout diagnostics now include nonincident atom-label–bond and attached-charge–bond ink. The publication recipe shows common print scale, real scripts, explicit independent parts and no duplicate figure heading.

More workflows and documentation

Contribute

Try the example and share what got in your way. Small reproducible drawings, installation feedback, and documentation improvements are useful contributions. If Chemvas is useful to you, a star helps others find it.

For development, read CONTRIBUTING. make check runs lint, formatting, type checking, the file-isolated test suite, and document-handoff conformance checks.

Architecture · Changelog · Releasing · MIT License

Download files

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

Source Distribution

chemvas-0.10.1.tar.gz (639.2 kB view details)

Uploaded Source

Built Distribution

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

chemvas-0.10.1-py3-none-any.whl (801.2 kB view details)

Uploaded Python 3

File details

Details for the file chemvas-0.10.1.tar.gz.

File metadata

  • Download URL: chemvas-0.10.1.tar.gz
  • Upload date:
  • Size: 639.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chemvas-0.10.1.tar.gz
Algorithm Hash digest
SHA256 dd43e51fcd29654aee609804a8f0ab9681ac4297e36336e71e995ecae7071b5c
MD5 1ffb5c1cb09d36ae0d04595385fa2ded
BLAKE2b-256 14887d6eb370db02f6a481bbb02b15ad47e2d2c0db877beffb4c27f1ea1d5f84

See more details on using hashes here.

Provenance

The following attestation bundles were made for chemvas-0.10.1.tar.gz:

Publisher: release.yml on dhsohn/Chemvas

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

File details

Details for the file chemvas-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: chemvas-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 801.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chemvas-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bb49118477a1fc90d33334dce10adaa99da8f39fd540f53d2e06d2779fc67938
MD5 de93bfdb40244aa5323c9a28dbe66496
BLAKE2b-256 ed87ce8c2ef7b90842acd8e263f135de918d1032a3cc4d7369fd070326515ab1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chemvas-0.10.1-py3-none-any.whl:

Publisher: release.yml on dhsohn/Chemvas

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

Release history Release notifications | RSS feed

0.12.0

2 files

0.11.0

2 files

0.10.2

2 files

This release

0.10.1 This release

2 files

0.10.0

2 files

0.9.0

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page