This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
XDrawChem
Desktop editor for drawing two-dimensional chemical structures, reaction schemes, and annotated chemistry figures.
Open source. 37 of 65 checklist features confirmed.
Main canvas
Fixed light palette; paclitaxel import failed, leaving blank canvas.
Default drawings
No drawing: current Kekulé SMILES stayed blank; MOL rejected with file-type selection error.
Caffeine
No drawing: current Kekulé SMILES stayed blank; MOL rejected with file-type selection error.
Paclitaxel
No 3D view
Cholesterol in 3D
- Caffeine and paclitaxel SMILES inputs left empty default canvases.
- Default controls show Helvetica 12 and line thickness 1.
- Benzene and alanine insertion failed with missing-template-file alerts.
- Default SVG and PDF exports embed raster images.
- Reopening the app’s own CDXML export made it unresponsive.
- Current Kekulé SMILES also left caffeine and paclitaxel canvases empty.
- Redraw stderr reports missing OpenBabel plugins and zero atoms after each fixture SMILES import.
- About reports 2.0.1; both Info.plist bundle-version fields report 2.0.
Facts
- GitHub stars
- 56 stars on 6 Nov 2026
- First commit
- 25 Nov 2016
- Repository activity
- 300 commits, 12 contributors, last push 31 Oct 2026
- Latest version
- v2.0.1
- Version we tested
- 2.0.1
- Runs on
- macOS, Windows, Linux
- License
- GNU GPL version 2 or later.
- Price
- Free
- Relies on
- Open Babel. Own Render2D canvas and editing logic; Open Babel handles molecular conversion and chemistry.
- Draws with
- Qt QPainter; custom legacy SVG/EPS writers; raster-backed PDF and newer SVG export
- Chemistry from
- Open Babel 3 and in-house chemistry algorithms
- Interface
- Qt 6 Widgets; legacy Qt 5 build also available
- Main language
- C++
- Other languages
- C: Native InChI through Open Babel
- Renderer
- Original: XDrawChem Render2D (Qt QPainter)
- Third-party licenses
- Includes GPL-2.0-only (Open Babel) and LGPL-3.0/GPL or commercial licensing (Qt6).
- Download
- 40 MB
- Installed
- 111 MB
- Ratings cover v2.0.1; newer unreleased source adds CIP labels and local 3D generation.
- PDF and Export SVG embed bitmaps despite vector claims; the 300 dpi clipboard option upscales pixels.
- Older docs conflict with code on 3D, Babel export, text/projections, template refresh, CDX output, and MOL/SDF support.
In use
Screenshots from our test of this version.

Single, double and triple bonds
A double bond on the drawing canvas.

Wedge, hash and wavy bonds
Solid wedge, hashed wedge, and wavy bonds on the canvas.

Reaction arrows
Forward and hollow reaction arrows on the canvas.

Curved mechanism arrows
A curved arrow on the drawing canvas.

Formula and mass
Molecule Info displays C2H4 and molecular weight 28.0538.

High-resolution PNG
The canvas and a saved PNG file status message.
Features
- Tested by running it
- Seen in the app
- The manual says yes
- Partly, with the reason shown
- Not supported
- Not established, which is not the same as no
Select a mark for its proof. A filled mark opens our screenshot, or the manual if the check left nothing to picture. A ring opens the manual.
Drawing structures
- Partly: Single and double drawn; triple control seen but not confirmed. Opens the screenshot.Single, double and triple bondsSingle and double drawn; triple control seen but not confirmed.github.com
- Yes, tested by running it: Solid wedge, hashed wedge, and wavy bonds drawn. Opens the screenshot.Wedge, hash and wavy bondsSolid wedge, hashed wedge, and wavy bonds drawn.github.com
- Yes, according to the manual: Dative and partial-order aromatic/double-triple bonds. Opens the cited page.Dative, hydrogen and quadruple bondsDative and partial-order aromatic/double-triple bonds.github.com
- Yes, according to the manual. Opens the cited page.Choose double-bond sidegithub.com
- No: Benzene insertion reports missing Resources/benzene.cml. Opens the cited page.Ring toolsBenzene insertion reports missing Resources/benzene.cml.github.com
- Yes, according to the manual: Cyclohexane chair and boat templates. Opens the cited page.Chair and Haworth ringsCyclohexane chair and boat templates.github.com
- Yes, according to the manual. Opens the cited page.Chain toolgithub.com
- No: Alanine insertion reports missing Resources/alanine.cml. Opens the cited page.Template libraryAlanine insertion reports missing Resources/alanine.cml.github.com
- Yes, according to the manual: Save molecules in the custom ring library. Opens the cited page.Save your own templatesSave molecules in the custom ring library.github.com
- No: Expandable superatom abbreviations require a future data model. Opens the cited page.Group abbreviationsExpandable superatom abbreviations require a future data model.github.com
- Partly: Arbitrary labels work; formal charges and isotopes lack chemical representation. Opens the cited page.Charges, isotopes and atom labelsArbitrary labels work; formal charges and isotopes lack chemical representation.github.com
- Yes, according to the manual: Graphical electron-dot and lone-pair symbols. Opens the cited page.Radicals and lone pairsGraphical electron-dot and lone-pair symbols.github.com
- Yes, according to the manual: Typing over an atom starts or changes its label. Opens the cited page.Keyboard drawingTyping over an atom starts or changes its label.github.com
- Yes, according to the manual: Lasso selection, rotation, mirroring, and resizing. Opens the cited page.Lasso select and transformsLasso selection, rotation, mirroring, and resizing.github.com
- Not establishedTilt drawings in perspective
Reactions and mechanisms
- Yes, tested by running it: Forward and retrosynthetic arrows drawn. Opens the screenshot.Reaction arrowsForward and retrosynthetic arrows drawn.github.com
- Yes, tested by running it: 90-degree curved arrow drawn on scratch canvas. Opens the screenshot.Curved mechanism arrows90-degree curved arrow drawn on scratch canvas.github.com
- Yes, according to the manual: Native XDC stores molecules with reactant and product roles. Opens the cited page.Machine-readable reactionsNative XDC stores molecules with reactant and product roles.github.com
- No: Listed as future work for v2.1 or later. Opens the cited page.Atom mappingListed as future work for v2.1 or later.github.com
- Yes, according to the manual: Orbital shapes and chemical symbols. Opens the cited page.Orbitals and symbolsOrbital shapes and chemical symbols.github.com
Figures and layout
- Yes, according to the manual. Opens the cited page.Rich text captionsgithub.com
- Yes, according to the manual: Editable brackets, boxes, circles, ellipses, and curves. Opens the cited page.Shapes, brackets and curvesEditable brackets, boxes, circles, ellipses, and curves.github.com
- Partly: Auto layout aligns whole schemes rather than selected objects. Opens the cited page.Align and distributeAuto layout aligns whole schemes rather than selected objects.github.com
- Not establishedGroup and ungroup
- Yes, according to the manual. Opens the cited page.2D structure cleanupgithub.com
- Yes, according to the manual: Built-in ACS style preset. Opens the cited page.Journal drawing stylesBuilt-in ACS style preset.github.com
- Partly: Bond settings persist; drawing-font presets are not saved. Opens the cited page.Reusable custom stylesBond settings persist; drawing-font presets are not saved.github.com
- Yes, according to the manual. Opens the cited page.Color controlgithub.com
- Yes, according to the manual: Atom labels support colored background shapes. Opens the cited page.Color highlightingAtom labels support colored background shapes.github.com
- Partly: Page size and orientation controls; document uses one canvas. Opens the cited page.Page layout and multipagePage size and orientation controls; document uses one canvas.github.com
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Yes, according to the manual. Opens the cited page.Structure checkinggithub.com
- No: Absent from v2.0.1; implemented in newer unreleased source. Opens the cited page.R/S and E/Z labelsAbsent from v2.0.1; implemented in newer unreleased source.github.com
- Yes, tested by running it: Drawn ethene returned C2H4 and molecular weight 28.0538. Opens the screenshot.Formula and massDrawn ethene returned C2H4 and molecular weight 28.0538.github.com
- Yes, according to the manual: Estimates log Kow. Opens the cited page.Property estimatesEstimates log Kow.github.com
- No: Submitting caffeine returned without adding a structure. Opens the cited page.Name to structureSubmitting caffeine returned without adding a structure.github.com
- No: Drawn ethene lookup reported Could not retrieve IUPAC name. Opens the cited page.Structure to nameDrawn ethene lookup reported Could not retrieve IUPAC name.github.com
- Yes, according to the manual. Opens the cited page.NMR predictiongithub.com
- Not establishedR-groups and query structures
- No: S-groups and repeat-unit semantics require a future data model. Opens the cited page.Polymers and repeat unitsS-groups and repeat-unit semantics require a future data model.github.com
- Partly: Amino-acid and nucleic-base templates; sequence builder does not assemble structures. Opens the cited page.Peptides and nucleic acidsAmino-acid and nucleic-base templates; sequence builder does not assemble structures.github.com
- No: OSRA integration is listed as future work. Opens the cited page.Image to structureOSRA integration is listed as future work.github.com
- Yes, according to the manual: PubChem search by name, CAS number, or formula. Opens the cited page.Online structure lookupPubChem search by name, CAS number, or formula.github.com
- No: Build 3D reports coordinate-generation service unavailable. Opens the cited page.3D model viewBuild 3D reports coordinate-generation service unavailable.github.com
- Not establishedCrystal structures
Files and exchange
- Partly: CDXML written; reopening same file hung at 100% CPU. Opens the cited page.CDXML import and exportCDXML written; reopening same file hung at 100% CPU.github.com
- Partly: Reads binary CDX; saving uses CDXML instead. Opens the cited page.CDX import and exportReads binary CDX; saving uses CDXML instead.github.com
- No: MOL/SDF opening rejected; format menus contain only CDX, CDXML, XDC. Opens the cited page.MOL and SDFMOL/SDF opening rejected; format menus contain only CDX, CDXML, XDC.github.com
- No: Fixture input left blank canvases; drawn ethene output string empty. Opens the cited page.SMILESFixture input left blank canvases; drawn ethene output string empty.github.com
- Yes, according to the manual: Reads and writes via Open Babel; import loses chemical metadata. Opens the cited page.InChIReads and writes via Open Babel; import loses chemical metadata.github.com
- No: RXN interchange is listed as future work. Opens the cited page.RXN filesRXN interchange is listed as future work.github.com
- Partly: Export succeeds, but SVG embeds one bitmap and no vector paths. Opens the cited page.SVG exportExport succeeds, but SVG embeds one bitmap and no vector paths.github.com
- Partly: PDF export contains a raster image instead of vector drawing. Opens the cited page.PDF exportPDF export contains a raster image instead of vector drawing.github.com
- Partly: Default file export is 263x350 pixels at 72 dpi. Opens the screenshot.High-resolution PNGDefault file export is 263x350 pixels at 72 dpi.github.com
- Not establishedPaste to and from ChemDraw
- Not establishedEditable in Word or PowerPoint
- Not establishedWindows Office OLE
APIs and automation
- Not establishedPython API
- Not establishedJavaScript or TypeScript API
- Partly: PNG command-line mode still initializes and displays the GUI. Opens the cited page.Command-line toolPNG command-line mode still initializes and displays the GUI.github.com
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Not establishedPlugins
- Not established: Standalone Qt editor; no supported embeddable widget or library found.Embed in your own appStandalone Qt editor; no supported embeddable widget or library found.github.com
