This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
JChemPaint
A Java desktop editor for drawing and exporting two-dimensional chemical structures and reactions.
Open source. 31 of 65 checklist features confirmed.
Main canvas
Dark chrome observed; molecule entry failed, so dark capture remains unverified.
Default drawings
We could not finish testing this tool: Latest historical stable 3.3-1210 JAR returned 404; available archived stable 3.2.0 tested. GUI automation could not commit PNG/SVG format selection.
- Caffeine paste auto-layout shows aromatic ring bonds as single lines.
- Default heteroatoms are colored; hydrogens are largely implicit.
- Paclitaxel MOL displays wedge and hashed stereo bonds.
- Default PDF printing clips the rightmost template at the page boundary.
- The app explicitly requires 2D coordinates to display cholesterol.
- Current Kekule SMILES imported successfully for both caffeine and paclitaxel through Direct Entry.
- Paclitaxel SMILES auto-layout contains overlapping bonds and labels; no cleanup or repositioning was applied.
- Native SVG and MOL saving succeeded after keyboard format selection was committed with Enter.
- Generating SMILES from imported paclitaxel failed: Comparison method violates its general contract!
Facts
- GitHub stars
- 149 stars on 6 Nov 2026
- First commit
- 21 Mar 2008
- Repository activity
- 1,584 commits, 18 contributors, last push 30 Oct 2026
- Version we tested
- 3.2.0
- Runs on
- macOS, Windows, Linux
- License
- GNU Lesser General Public License 2.1 or later.
- Price
- Free
- Relies on
- CDK, InChI. Own canvas and controllers; CDK provides chemistry and rendering, with InChI for identifiers.
- Draws with
- CDK rendering via Java2D/AWT; CDK DepictionGenerator for SVG and PDF
- Chemistry from
- Chemistry Development Kit (CDK)
- Interface
- Java Swing
- Main language
- Java
- Other languages
- C: Native InChI and macOS clipboard bridge; Swift: macOS native clipboard
- Renderer
- Borrowed: CDK StandardGenerator
- Third-party licenses
- Includes LGPL-2.1-or-later CDK/JNA-InChI, LGPL-2.1 XOM, GPL-2.0 with Classpath exception vecmath, and Apache-2.0 libraries.
- Download
- 6.6 MB
- Installed
- 6.7 MB
- Official downloads are nightly builds; the JAR requires an installed Java runtime.
- Legacy browser applets are obsolete and absent from the current source.
- Bundled documentation has outdated export, transform, bond-tool and Java-version descriptions.
In use
Screenshots from our test of this version.

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

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

Ring tools
A benzene ring on the canvas beside the ring toolbar.

Reaction arrows
A forward reaction arrow on the canvas.

Formula and mass
A molecular structure and its formula in the status bar.
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
- Yes, tested by running it: Drew single, double, and triple bonds by clicking atoms. Opens the screenshot.Single, double and triple bondsDrew single, double, and triple bonds by clicking atoms.github.com
- Yes, tested by running it: Solid wedge, hashed wedge, and wavy bonds drawn successfully. Opens the screenshot.Wedge, hash and wavy bondsSolid wedge, hashed wedge, and wavy bonds drawn successfully.github.com
- Partly: Quadruple bonds exposed; coordination bonds lack a default UI binding. Opens the cited page.Dative, hydrogen and quadruple bondsQuadruple bonds exposed; coordination bonds lack a default UI binding.github.com
- Not establishedChoose double-bond side
- Yes, tested by running it: Inserted benzene using the dedicated ring tool. Opens the screenshot.Ring toolsInserted benzene using the dedicated ring tool.github.com
- Not establishedChair and Haworth rings
- Yes, according to the manual. Opens the cited page.Chain toolgithub.com
- Yes, tested by running it: Inserted Morphine from the built-in template library. Opens the cited page.Template libraryInserted Morphine from the built-in template library.github.com
- Not establishedSave your own templates
- Yes, according to the manual: Recognized group abbreviations expand into connected atoms during insertion. Opens the cited page.Group abbreviationsRecognized group abbreviations expand into connected atoms during insertion.github.com
- Yes, according to the manual. Opens the cited page.Charges, isotopes and atom labelsgithub.com
- Yes, according to the manual: Single-electron radicals can be added and removed. Opens the cited page.Radicals and lone pairsSingle-electron radicals can be added and removed.github.com
- Yes, according to the manual: Context-sensitive atom and bond keyboard shortcuts. Opens the cited page.Keyboard drawingContext-sensitive atom and bond keyboard shortcuts.github.com
- Yes, according to the manual: Lasso selection, rotation, flipping and coordinate-based resizing. Opens the cited page.Lasso select and transformsLasso selection, rotation, flipping and coordinate-based resizing.github.com
- Yes, according to the manual: Quasi-3D projection transforms selected two-dimensional drawing coordinates. Opens the cited page.Tilt drawings in perspectiveQuasi-3D projection transforms selected two-dimensional drawing coordinates.github.com
Reactions and mechanisms
- Partly: Forward reaction arrow worked; no alternative arrow styles found. Opens the screenshot.Reaction arrowsForward reaction arrow worked; no alternative arrow styles found.github.com
- No: No curved electron-pushing tool found in menus or toolbars. Opens the cited page.Curved mechanism arrowsNo curved electron-pushing tool found in menus or toolbars.
- Partly: Reaction tool assigned reactants and products while drawing forward arrow. Opens the cited page.Machine-readable reactionsReaction tool assigned reactants and products while drawing forward arrow.github.com
- Not establishedAtom mapping
- Not establishedOrbitals and symbols
Figures and layout
- Not establishedRich text captions
- Not establishedShapes, brackets and curves
- Yes, according to the manual: Snap guides align molecule bounds and centers during dragging. Opens the cited page.Align and distributeSnap guides align molecule bounds and centers during dragging.github.com
- Not establishedGroup and ungroup
- Yes, according to the manual. Opens the cited page.2D structure cleanupgithub.com
- Not establishedJournal drawing styles
- Partly: Bond settings persist; font-selection controls are disabled. Opens the cited page.Reusable custom stylesBond settings persist; font-selection controls are disabled.github.com
- Partly: Element coloring and background color controls visible; individual colors unverified. Opens the cited page.Color controlElement coloring and background color controls visible; individual colors unverified.
- Partly: Hover halos are temporary and omitted from SVG/PDF exports. Opens the cited page.Color highlightingHover halos are temporary and omitted from SVG/PDF exports.github.com
- Not establishedPage layout and multipage
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Not establishedStructure checking
- Not establishedR/S and E/Z labels
- Partly: Formula displayed in status bar; no mass command found. Opens the screenshot.Formula and massFormula displayed in status bar; no mass command found.github.com
- Not establishedProperty estimates
- No: Direct entry lists CAS, SMILES, InChI; no name command. Opens the cited page.Name to structureDirect entry lists CAS, SMILES, InChI; no name command.
- No: Tools offers SMILES/InChI generation; no naming command found. Opens the cited page.Structure to nameTools offers SMILES/InChI generation; no naming command found.
- Not establishedNMR prediction
- Yes, according to the manual: R-group queries, attachment points, logic and enumeration. Opens the cited page.R-groups and query structuresR-group queries, attachment points, logic and enumeration.github.com
- Not establishedPolymers and repeat units
- Not establishedPeptides and nucleic acids
- Not establishedImage to structure
- Yes, according to the manual: CAS lookup uses legacy PubChem endpoints; service availability unverified. Opens the cited page.Online structure lookupCAS lookup uses legacy PubChem endpoints; service availability unverified.github.com
- No: 3D SDF rejected: cannot display without 2D coordinates. Opens the cited page.3D model view3D SDF rejected: cannot display without 2D coordinates.
- Not establishedCrystal structures
Files and exchange
- No: Absent from inspected Open and Save As format lists. Opens the cited page.CDXML import and exportAbsent from inspected Open and Save As format lists.
- Not establishedCDX import and export
- Yes, tested by running it: MOL round-trip succeeded; SDF parser requested 2D layout. Opens the cited page.MOL and SDFMOL round-trip succeeded; SDF parser requested 2D layout.github.com
- Partly: Caffeine paste and generation worked; paclitaxel file autodetection failed. Opens the cited page.SMILESCaffeine paste and generation worked; paclitaxel file autodetection failed.github.com
- Yes, according to the manual: Generates InChI; insertion also accepts InChI. Opens the cited page.InChIGenerates InChI; insertion also accepts InChI.github.com
- Yes, according to the manual: Reads and writes MDL RXN reaction files. Opens the cited page.RXN filesReads and writes MDL RXN reaction files.github.com
- Yes, according to the manual. Opens the cited page.SVG exportgithub.com
- Partly: Print-to-PDF succeeded; default A4 output clipped the rightmost structure. Opens the cited page.PDF exportPrint-to-PDF succeeded; default A4 output clipped the rightmost structure.github.com
- Partly: Image-save attempt failed: no file type chosen; automation limitation. Opens the cited page.High-resolution PNGImage-save attempt failed: no file type chosen; automation limitation.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
- Not establishedCommand-line tool
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Yes, according to the manual: Custom Java controller modules can receive editor mouse events. Opens the cited page.PluginsCustom Java controller modules can receive editor mouse events.github.com
- Yes, according to the manual: Add JChemPaintPanel(IChemModel) to Swing containers; getMenuForEmbedded supplies menus. Opens the cited page.Embed in your own appAdd JChemPaintPanel(IChemModel) to Swing containers; getMenuForEmbedded supplies menus.github.com


