This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
JSME Molecule Editor
A browser-based editor for drawing molecules and reactions and entering chemical search queries in web applications.
Open source. 27 of 65 checklist features confirmed.
Main canvas
Default drawings
- Caffeine appears small and centered in the default editor area.
- Paclitaxel fits the canvas with colored heteroatoms and stereo bonds.
- Both MOL outputs matched fixture structures, including stereochemistry, using RDKit.
- The test page starts with a glutathione example; Clear Editor removes it.
- Raw SVG is exposed through a copy dialog after enabling exportSVG.
Facts
- GitHub stars
- 110 stars on 6 Nov 2026
- First commit
- 6 Dec 2020
- Repository activity
- 63 commits, 5 contributors, last push 9 Mar 2025
- Latest version
- v2021.07.13
- Version we tested
- v2024-04-29
- Runs on
- Browser, iOS, Android
- License
- BSD 3-Clause license; permits commercial use and redistribution.
- Price
- Free
- Relies on
- JME, OpenChemLib, InChI. Modified JME code compiled to JavaScript; optional OpenChemLib and InChI integrations.
- Draws with
- Browser SVG through JSApplet; optional OpenChemLib SVG export
- Chemistry from
- In-house JME chemistry; optional OpenChemLib and InChI
- Interface
- GWT, JSApplet AWT emulation and GWT Mosaic
- Main language
- Java (GWT-compiled to JavaScript)
- Other languages
- JavaScript: GWT output and browser integrations; C: InChI compiled to browser asm.js
- Renderer
- Borrowed: JME/JSApplet; optional OpenChemLib SVG
- Third-party licenses
- Apache-2.0 Harmony/GWT/Mosaic/Exporter, BSD-3-Clause OpenChemLib and MIT or NCSA Emscripten; InChI 1.05 uses custom IUPAC/InChI-Trust Licence 1.0 with library copyleft, source-distribution obligations and modified-output naming restrictions.
- Download
- 1.0 MB
- SVG export requires enabling the optional OpenChemLib integration.
- Name conversion uses an external NCI web service in the supplied demonstration.
- The distribution provides optimized JavaScript, without the underlying Java sources.
In use
Screenshots from our test of this version.

Single, double and triple bonds
Double and triple bonds on the editor canvas.

Wedge, hash and wavy bonds
Molecule with solid and hashed wedge bonds.

Dative, hydrogen and quadruple bonds
Editor menu lists a disabled coordination bond command.

Ring tools
Benzene on the canvas with ring tools above.

Template library
Functional-group menu beside a benzene ring.

Charges, isotopes and atom labels
Element toolbar and change atom charge command.

Reaction arrows
Reactants and product connected by a forward arrow.

Machine-readable reactions
Reaction menu offers SMIRKS and RXN copy options.

2D structure cleanup
Editor menu offers a compute 2D coordinates command.

R-groups and query structures
Atom and bond query dialog with element and bond options.

MOL and SDF
Test page with MOL import and MOL and SDF export controls.

SMILES
SMILES dialog above a glutathione structure.

RXN files
Reaction menu offers RXN copy and paste commands.

SVG export
Copy dialog containing SVG markup over the molecule editor.
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 and changed bond to double and triple. Opens the screenshot.Single, double and triple bondsDrew single and changed bond to double and triple.jsme-editor.github.io
- Partly: Wedge drawing and imported hashes visible; wavy not verified. Opens the screenshot.Wedge, hash and wavy bondsWedge drawing and imported hashes visible; wavy not verified.jsme-editor.github.io
- Partly: Menu includes coordination bond; another specialist type not found. Opens the screenshot.Dative, hydrogen and quadruple bondsMenu includes coordination bond; another specialist type not found.
- Not establishedChoose double-bond side
- Yes, tested by running it: Aromatic ring produced benzene; other ring sizes shown. Opens the screenshot.Ring toolsAromatic ring produced benzene; other ring sizes shown.jsme-editor.github.io
- Not establishedChair and Haworth rings
- Yes, according to the manual: Chain tool creates carbon chains and saturated rings. Opens the cited page.Chain toolChain tool creates carbon chains and saturated rings.jsme-editor.github.io
- Partly: Functional-group menu visible; attempted placement produced ethane. Opens the screenshot.Template libraryFunctional-group menu visible; attempted placement produced ethane.jsme-editor.github.io
- Yes, according to the manual: Save JME drawings and reuse named templates through the supplied demo. Opens the cited page.Save your own templatesSave JME drawings and reuse named templates through the supplied demo.jsme-editor.github.io
- Not establishedGroup abbreviations
- Yes, according to the manual: Isotopic atoms and atomic-charge editing are implemented. Opens the cited page.Charges, isotopes and atom labelsIsotopic atoms and atomic-charge editing are implemented.jsme-editor.github.io
- Not establishedRadicals and lone pairs
- Yes, according to the manual: Atom changes and ring shortcuts work under the pointer. Opens the cited page.Keyboard drawingAtom changes and ring shortcuts work under the pointer.jsme-editor.github.io
- Not establishedLasso select and transforms
- Not establishedTilt drawings in perspective
Reactions and mechanisms
- Partly: Forward reaction arrow shown; other arrow types not found. Opens the screenshot.Reaction arrowsForward reaction arrow shown; other arrow types not found.
- No: No curved electron-pushing arrow control found. Opens the cited page.Curved mechanism arrowsNo curved electron-pushing arrow control found.
- Yes, tested by running it: Sample reaction exported as reaction SMILES. Opens the screenshot.Machine-readable reactionsSample reaction exported as reaction SMILES.jsme-editor.github.io
- Yes, according to the manual: Manual reaction mapping through atom numbering. Opens the cited page.Atom mappingManual reaction mapping through atom numbering.jsme-editor.github.io
- Not establishedOrbitals and symbols
Figures and layout
- Not establishedRich text captions
- Not establishedShapes, brackets and curves
- Not establishedAlign and distribute
- Not establishedGroup and ungroup
- Yes, according to the manual: Selected-molecule popup recomputes 2D coordinates. Opens the cited page.2D structure cleanupSelected-molecule popup recomputes 2D coordinates.jsme-editor.github.io
- Not establishedJournal drawing styles
- Not establishedReusable custom styles
- Yes, according to the manual: Individual atom and bond background colors through the API. Opens the cited page.Color controlIndividual atom and bond background colors through the API.jsme-editor.github.io
- Yes, according to the manual: API sets colored backgrounds on individual atoms and bonds. Opens the cited page.Color highlightingAPI sets colored backgrounds on individual atoms and bonds.jsme-editor.github.io
- 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
- No: No formula or mass calculation control found. Opens the cited page.Formula and massNo formula or mass calculation control found.
- Not establishedProperty estimates
- No: Generic input of caffeine as a name returned empty. Opens the cited page.Name to structureGeneric input of caffeine as a name returned empty.github.com
- Yes, according to the manual: Official demo requests IUPAC names from the external NCI service. Opens the cited page.Structure to nameOfficial demo requests IUPAC names from the external NCI service.github.com
- Not establishedNMR prediction
- Yes, according to the manual: SMARTS atom and bond queries; R-group support. Opens the cited page.R-groups and query structuresSMARTS atom and bond queries; R-group support.jsme-editor.github.io
- Not establishedPolymers and repeat units
- Yes, according to the manual: Official peptide-builder demo supplies amino-acid building blocks for manual assembly. Opens the cited page.Peptides and nucleic acidsOfficial peptide-builder demo supplies amino-acid building blocks for manual assembly.jsme-editor.github.io
- Not establishedImage to structure
- Yes, according to the manual: Official demo fetches structures through the NCI Chemical Identifier Resolver. Opens the cited page.Online structure lookupOfficial demo fetches structures through the NCI Chemical Identifier Resolver.github.com
- No: No rotatable 3D model view found. Opens the cited page.3D model viewNo rotatable 3D model view found.
- Not establishedCrystal structures
Files and exchange
- No: No CDXML import or export command found. Opens the cited page.CDXML import and exportNo CDXML import or export command found.
- Not establishedCDX import and export
- Yes, tested by running it: MOL import/export and single-record SDF import worked. Opens the screenshot.MOL and SDFMOL import/export and single-record SDF import worked.github.com
- Yes, tested by running it: Imported and exported both 2D fixture SMILES. Opens the screenshot.SMILESImported and exported both 2D fixture SMILES.jsme-editor.github.io
- Yes, according to the manual: InChI is calculated in JavaScript within the browser. Opens the cited page.InChIInChI is calculated in JavaScript within the browser.jsme-editor.github.io
- Yes, according to the manual: Reads RXN; molFile exports RXN for reaction drawings. Opens the cited page.RXN filesReads RXN; molFile exports RXN for reaction drawings.github.com
- Yes, tested by running it: Raw SVG copy dialog works after enabling exportSVG option. Opens the screenshot.SVG exportRaw SVG copy dialog works after enabling exportSVG option.jsme-editor.github.io
- No: No PDF export command found. Opens the cited page.PDF exportNo PDF export command found.
- No: No PNG export command found. Opens the cited page.High-resolution PNGNo PNG export command found.
- Not establishedPaste to and from ChemDraw
- Not establishedEditable in Word or PowerPoint
- Not establishedWindows Office OLE
APIs and automation
- Not establishedPython API
- Yes, according to the manual: Documented JavaScript constructors, methods and callbacks. Opens the cited page.JavaScript or TypeScript APIDocumented JavaScript constructors, methods and callbacks.jsme-editor.github.io
- Not establishedCommand-line tool
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Yes, according to the manual: JavaScript callbacks extend paste handling and structure-change behavior. Opens the cited page.PluginsJavaScript callbacks extend paste handling and structure-change behavior.jsme-editor.github.io
- Yes, according to the manual: Load jsme.nocache.js; construct JSApplet.JSME(containerId, width, height) inside jsmeOnLoad. Opens the cited page.Embed in your own appLoad jsme.nocache.js; construct JSApplet.JSME(containerId, width, height) inside jsmeOnLoad.jsme-editor.github.io
