This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
ChemCanvasJS
An unfinished browser editor for drawing molecules and experimenting with editable SVG structure exchange.
Open source. 15 of 65 checklist features confirmed.
Main canvas
Editor stays light in both browser color schemes.
Default drawings
- The app reports ChemCanvas v0.9 in its MOL output.
- Imported structures are centered and initially small; zoom fits them.
- The browser saved transparent canvas images; the editor offers no image download.
- MOL output appears in the console and was extracted from saved logs.
- README advertises SMILES and SVG exchange; this example exposes console diagnostics.
Facts
- GitHub stars
- 10 stars on 6 Nov 2026
- First commit
- 25 Dec 2013
- Repository activity
- 11 commits, 2 contributors, last push 27 Dec 2013
- Version we tested
- 0.9 (aa2b985)
- Runs on
- Browser
- License
- MIT license included in the CoffeeScript source.
- Price
- Free
- Relies on
- Not established. Own canvas and chemistry code; SMILES conversion backend is undisclosed.
- Draws with
- Paper.js on HTML5 Canvas, with modified Paper.js SVG export
- Chemistry from
- In-house atom/bond model, MOL parser and incomplete CIP routines; unspecified server for SMILES conversion
- Interface
- jQuery and Bootstrap
- Main language
- CoffeeScript
- Other languages
- JavaScript: Compiled runtime and Paper.js graphics
- Renderer
- Original: ChemCanvasJS molecular renderer over Paper.js
- Third-party licenses
- MIT/Apache-2.0 libraries; Glyphicons Halflings have Bootstrap-specific permission; custom font licensing unestablished.
- Installed
- 1.8 MB
- Unfinished prototype, last pushed in 2013; triple bonds and automatic heteroatom hydrogens are unimplemented.
- README export claims exceed the bundled UI: MOL/SVG output is console-based; SMILES requires an unbundled backend.
- README overstates stereochemistry: R/S output is limited to console diagnostics; CIP rule 5 is omitted.
In use
Screenshots from our test of this version.

Single, double and triple bonds
Single and double bonds in a molecule on the canvas.

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

Ring tools
Ring tools beside a molecule with fused rings.

Charges, isotopes and atom labels
Element palette and nitrogen and oxygen labels on the canvas.
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 work; triple tool did not create one. Opens the screenshot.Single, double and triple bondsSingle and double work; triple tool did not create one.github.com
- Partly: Solid and hashed wedges work; no wavy tool visible. Opens the screenshot.Wedge, hash and wavy bondsSolid and hashed wedges work; no wavy tool visible.github.com
- Not establishedDative, hydrogen and quadruple bonds
- Partly: Repeated clicks switch sides; no centered placement. Opens the cited page.Choose double-bond sideRepeated clicks switch sides; no centered placement.github.com
- Partly: Cyclohexane works; no aromatic ring tool visible. Opens the screenshot.Ring toolsCyclohexane works; no aromatic ring tool visible.github.com
- Not establishedChair and Haworth rings
- Not establishedChain tool
- No: No library beyond ring tools visible. Opens the cited page.Template libraryNo library beyond ring tools visible.
- Not establishedSave your own templates
- Not establishedGroup abbreviations
- Partly: Element and plain-text labels; no chemical charge or isotope fields. Opens the cited page.Charges, isotopes and atom labelsElement and plain-text labels; no chemical charge or isotope fields.github.com
- Not establishedRadicals and lone pairs
- Yes, according to the manual: Point at atoms and type to create or extend labels. Opens the cited page.Keyboard drawingPoint at atoms and type to create or extend labels.github.com
- Partly: Whole-molecule move and rotate; no lasso, flip or resize. Opens the cited page.Lasso select and transformsWhole-molecule move and rotate; no lasso, flip or resize.github.com
- Not establishedTilt drawings in perspective
Reactions and mechanisms
- No: No reaction arrow control found. Opens the cited page.Reaction arrowsNo reaction arrow control found.
- No: No curved arrow control found. Opens the cited page.Curved mechanism arrowsNo curved arrow control found.
- Not establishedMachine-readable reactions
- Not establishedAtom mapping
- Not establishedOrbitals and symbols
Figures and layout
- Not establishedRich text captions
- Not establishedShapes, brackets and curves
- Not establishedAlign and distribute
- Not establishedGroup and ungroup
- Not established2D structure cleanup
- Not establishedJournal drawing styles
- Not establishedReusable custom styles
- Not establishedColor control
- Partly: Temporary blue atom and bond hover highlights only. Opens the cited page.Color highlightingTemporary blue atom and bond hover highlights only.github.com
- Not establishedPage layout and multipage
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Not establishedStructure checking
- Partly: Limited R/S console output; four-neighbor stereocenters remain unfinished. Opens the cited page.R/S and E/Z labelsLimited R/S console output; four-neighbor stereocenters remain unfinished.github.com
- No: No formula or mass command found. Opens the cited page.Formula and massNo formula or mass command found.
- Not establishedProperty estimates
- No: No name input found. Opens the cited page.Name to structureNo name input found.
- No: No naming command found. Opens the cited page.Structure to nameNo naming command found.
- 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
- No: No 3D view control found. Opens the cited page.3D model viewNo 3D view control found.
- Not establishedCrystal structures
Files and exchange
- No: No CDXML command or format option found. Opens the cited page.CDXML import and exportNo CDXML command or format option found.
- Not establishedCDX import and export
- Partly: MOL imports and logs output; SDF rejected. Opens the cited page.MOL and SDFMOL imports and logs output; SDF rejected.github.com
- No: SMILES file rejected; no paste field found. Opens the cited page.SMILESSMILES file rejected; no paste field found.github.com
- Not establishedInChI
- Not establishedRXN files
- Partly: Shortcut logs SVG element; no file download. Opens the cited page.SVG exportShortcut logs SVG element; no file download.github.com
- Partly: Print generates PDF through browser; includes page headers. Opens the cited page.PDF exportPrint generates PDF through browser; includes page headers.
- Partly: Browser saves canvas PNG; no resolution control in editor. Opens the cited page.High-resolution PNGBrowser saves canvas PNG; no resolution control in editor.
- Not establishedPaste to and from ChemDraw
- Not establishedEditable in Word or PowerPoint
- Not establishedWindows Office OLE
APIs and automation
- Not establishedPython API
- Partly: Canvas constructor example only; no public API reference. Opens the cited page.JavaScript or TypeScript APICanvas constructor example only; no public API reference.github.com
- Not establishedCommand-line tool
- Not establishedAI agent control
- Not establishedBuilt-in AI assistant
Embedding and extension
- Not establishedPlugins
- Partly: MIT; triple bonds unimplemented; example references missing main.js. Opens the cited page.Embed in your own appMIT; triple bonds unimplemented; example references missing main.jsgithub.com


