This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
PyChem-Pro
A desktop chemistry application and Python library for molecular visualization, structure sketching, geometry optimization, and cheminformatics.
Source available. 28 of 65 checklist features confirmed.
Main canvas
Canvas stays white; Light leaves dark toolbars with low contrast.
Default drawings
- Caffeine is readable; paclitaxel's default layout has overlapping bonds and labels.
- Generated paclitaxel and cholesterol SMILES lose all specified stereocenters.
- Default 3D rendering uses green Ball & Stick and red oxygen.
- Cholesterol formula is C27H46O; descriptor molecular weight is 340.296.
- Manual drawing gestures produced no visible objects; automation limitations remain possible.
Facts
- GitHub stars
- 401 stars on 6 Nov 2026
- First commit
- 18 Mar 2026
- Repository activity
- 292 commits, 4 contributors, last push 18 Oct 2026
- Latest version
- v1.0.0
- Version we tested
- 1.0.0
- Runs on
- macOS, Windows, Linux
- License
- Custom noncommercial terms labeled PolyForm; service use restricted; bundled OASA has separate GPL notices.
- Price
- Free for personal and educational use (2026-11-05); commercial use prohibited.
- Relies on
- ChemCanvas, OASA. 2D sketcher files are marked "Adapted from ChemCanvas (GPLv3)". OASA is vendored and credited in the README.
- Draws with
- Qt QPainter for molecular views and raster exports; Qt QGraphicsScene sketcher; offline ray-tracing export.
- Chemistry from
- In-house Python/NumPy chemistry with vendored OASA for SMILES and 2D layout; optional RDKit plugin.
- Interface
- PySide6 (Qt 6).
- Main language
- Python
- Other languages
- None
- Renderer
- Borrowed: Adapted ChemCanvas sketcher; in-house QPainter views
- Third-party licenses
- Includes GPL-3.0-or-later (ChemCanvas), GPL-2.0-or-later (OASA), LGPL-2.1 (Jmol data), and LGPL-3.0/GPL-3.0 or commercial terms (PySide6/Qt).
- Download
- 1.6 MB
- Installed
- 1.6 GB
- Custom noncommercial license. Bundled components, including GPL-licensed code, carry their own terms.
- The sketcher saves molecules, not complete schemes.
In use
Screenshots from our test of this version.

Single, double and triple bonds
Bond tool and single and double bonds in a caffeine drawing.

Ring tools
Benzene, hexane and pentane ring tools beside the canvas.

Lasso select and transforms
Selected structure with rotate and flip controls in the sketcher.

Reaction arrows
Reaction, equilibrium and reverse arrow controls beside the canvas.

Curved mechanism arrows
Curly and fish arrow controls beside the canvas.

Formula and mass
Molecular formula C27H46O above a two-dimensional structure.

3D model view
Ball-and-stick molecular model in the 3D viewer.

SMILES
Molecular viewer with a SMILES input and 3D structure.

PDF export
Page showing two-dimensional and three-dimensional molecular views.

High-resolution PNG
Ball-and-stick molecular model on a white background.

Python API
Embedded Python console above the molecular viewer.
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: Tool selectable; drawing gestures produced no visible bond. Opens the screenshot.Single, double and triple bondsTool selectable; drawing gestures produced no visible bond.github.com
- Partly: Bond selector visible; stereo drawing could not be verified. Opens the cited page.Wedge, hash and wavy bondsBond selector visible; stereo drawing could not be verified.github.com
- Not establishedDative, hydrogen and quadruple bonds
- Not establishedChoose double-bond side
- Partly: Ring tools selectable; placement attempts produced no visible ring. Opens the screenshot.Ring toolsRing tools selectable; placement attempts produced no visible ring.github.com
- Not establishedChair and Haworth rings
- Not establishedChain tool
- Yes, according to the manual: Naphthalene template constructs a fused second ring. Opens the cited page.Template libraryNaphthalene template constructs a fused second ring.github.com
- Not establishedSave your own templates
- Yes, according to the manual: Recognized group labels expand into chemically connected atoms and bonds. Opens the cited page.Group abbreviationsRecognized group labels expand into chemically connected atoms and bonds.github.com
- Partly: Charges and arbitrary labels editable; atom isotope editing unverified. Opens the cited page.Charges, isotopes and atom labelsCharges and arbitrary labels editable; atom isotope editing unverified.github.com
- Yes, according to the manual: Atom tools add lone pairs and charged radical dots. Opens the cited page.Radicals and lone pairsAtom tools add lone pairs and charged radical dots.github.com
- Yes, according to the manual: Typing changes the focused atom; element shortcuts are defined. Opens the cited page.Keyboard drawingTyping changes the focused atom; element shortcuts are defined.github.com
- Partly: Select All works; rotate and flip controls visible. Opens the screenshot.Lasso select and transformsSelect All works; rotate and flip controls visible.github.com
- Not establishedTilt drawings in perspective
Reactions and mechanisms
- Partly: Forward/equilibrium tools selected; drags produced no visible arrows. Opens the screenshot.Reaction arrowsForward/equilibrium tools selected; drags produced no visible arrows.github.com
- Partly: Curly tool selected; drags produced no visible arrows. Opens the screenshot.Curved mechanism arrowsCurly tool selected; drags produced no visible arrows.github.com
- Not establishedMachine-readable reactions
- Not establishedAtom mapping
- Not establishedOrbitals and symbols
Figures and layout
- Partly: Free-text subscripts/superscripts supported; user font selection unverified. Opens the cited page.Rich text captionsFree-text subscripts/superscripts supported; user font selection unverified.github.com
- Partly: Editable rectangles/ellipses supported; brackets and unrestricted free curves unverified. Opens the cited page.Shapes, brackets and curvesEditable rectangles/ellipses supported; brackets and unrestricted free curves unverified.github.com
- Not establishedAlign and distribute
- Not establishedGroup and ungroup
- Yes, according to the manual: Command regenerates coordinates with normalized bond lengths and angles. Opens the cited page.2D structure cleanupCommand regenerates coordinates with normalized bond lengths and angles.github.com
- Not establishedJournal drawing styles
- Not establishedReusable custom styles
- Yes, according to the manual: Selected atoms, bonds and other drawable objects receive individual colors. Opens the cited page.Color controlSelected atoms, bonds and other drawable objects receive individual colors.github.com
- Yes, according to the manual: Yellow atom selection halos remain visible in exported images. Opens the cited page.Color highlightingYellow atom selection halos remain visible in exported images.github.com
- Partly: Page dimensions, presets and orientation supported; multipage documents unverified. Opens the cited page.Page layout and multipagePage dimensions, presets and orientation supported; multipage documents unverified.github.com
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Not establishedStructure checking
- Not establishedR/S and E/Z labels
- Partly: Correct formula; descriptor mass omits implicit hydrogen contribution. Opens the screenshot.Formula and massCorrect formula; descriptor mass omits implicit hydrogen contribution.github.com
- Yes, tested by running it: Descriptor CSV reports cholesterol LogP 6.814388959638463. Opens the cited page.Property estimatesDescriptor CSV reports cholesterol LogP 6.814388959638463.github.com
- No: Entering caffeine produced an invalid-atom SMILES parsing error. Opens the cited page.Name to structureEntering caffeine produced an invalid-atom SMILES parsing error.
- No: No naming command found in inspected menus. Opens the cited page.Structure to nameNo naming command found in inspected menus.
- Not establishedNMR prediction
- Not establishedR-groups and query structures
- Not establishedPolymers and repeat units
- Not establishedPeptides and nucleic acids
- Not establishedImage to structure
- Not establishedOnline structure lookup
- Yes, tested by running it: Built cholesterol from SMILES and rotated the model. Opens the screenshot.3D model viewBuilt cholesterol from SMILES and rotated the model.github.com
- Yes, according to the manual: Opens PDBx/mmCIF files; general crystallographic CIF support unverified. Opens the cited page.Crystal structuresOpens PDBx/mmCIF files; general crystallographic CIF support unverified.github.com
Files and exchange
- No: Import explicitly failed: Unsupported file format: .cdxml. Opens the cited page.CDXML import and exportImport explicitly failed: Unsupported file format: .cdxml.
- Not establishedCDX import and export
- Partly: MOL import and SDF export worked; no MOL save command. Opens the cited page.MOL and SDFMOL import and SDF export worked; no MOL save command.github.com
- Partly: Imports work; generated SMILES lose all specified stereocenters. Opens the screenshot.SMILESImports work; generated SMILES lose all specified stereocenters.github.com
- Not establishedInChI
- Not establishedRXN files
- No: .svg request saved .svg.png; no vector output. Opens the cited page.SVG export.svg request saved .svg.png; no vector output.
- Partly: System Print saves PDF containing rasterized molecular views. Opens the screenshot.PDF exportSystem Print saves PDF containing rasterized molecular views.
- Yes, tested by running it: 300-DPI export works; sketcher metadata says 72 DPI. Opens the screenshot.High-resolution PNG300-DPI export works; sketcher metadata says 72 DPI.github.com
- Not establishedPaste to and from ChemDraw
- Not establishedEditable in Word or PowerPoint
- Not establishedWindows Office OLE
APIs and automation
- Yes, according to the manual: Public pychem package supports scripting without Qt. Opens the cited page.Python APIPublic pychem package supports scripting without Qt.github.com
- Not establishedJavaScript or TypeScript API
- Not establishedCommand-line tool
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Yes, according to the manual: Documented Python plugin API with analysis, visualization, and I/O plugins. Opens the cited page.PluginsDocumented Python plugin API with analysis, visualization, and I/O plugins.github.com
- Partly: Custom noncommercial; services prohibited; bundled OASA GPL-2.0-or-later; undocumented widget. Opens the cited page.Embed in your own appCustom noncommercial; services prohibited; bundled OASA GPL-2.0-or-later; undocumented widget.github.com




