Skip to content
Chemical Drawing Atlas

This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.

All features

SMILES

SMILES can be read and written.

95 tools have this, 27 of them shown here. 19 do not. 14 not established.

What powers it: Indigo (WebAssembly) (3), RDKit (Python) (3), In-house (2), Ported from RDKit (Rust parser and writer) (1), In-house browser JavaScript SMILES parser/writer; optional Indigo 1.46.0 browser WebAssembly layout (1), RDKit SmilesParse and SmilesWrite (C++) (1), RDKit MinimalLib (WebAssembly parsing and canonical export) + OpenChemLib (JavaScript import fallback) + In-house (TypeScript graph writer fallback) (1), RDKit.js (WebAssembly, canonicalisation); Indigo (WebAssembly, through Ketcher import/export) (1), In-house parseSmiles and writeSmiles (JavaScript parser, canonicalizer and writer modules in browser) (1), In-house JavaScript SMILES parser/writer; bundled OpenChemLib 9.25.1 JavaScript toIsomericSmiles for stereochemical output (1), Indigo 1.45.1 (C++ compiled to WebAssembly, SMILES import/export via Ketcher); OpenChemLib JS 9.25.0 (SMILES parsing and MOL-to-SMILES helper) (1), RDKit MinimalLib 2026.9.1 (WebAssembly SMILES parser and writer, local worker) (1), Indigo (WebAssembly via ketcher-standalone) (1), In-house (chematic-smiles, Rust/WebAssembly parser and standard/canonical writers) (1), PubChem web service (server-proxied import and record lookup); Kekule.js (JavaScript writer fallback) (1), Indigo (WebAssembly conversion/layout through Ketcher) (1), RDKit (Python bindings, local server) (1), RDKit (Python Chem.MolFromSmiles import); output limited to PubChem-matched properties (1), OpenChemLib (browser JavaScript Molecule.fromSmiles/toSmiles) (1), OpenChemLib (JavaScript npm package) (1), Indigo WebAssembly through Ketcher; RDKit native Python bindings for backend conversion; In-house TypeScript import parser (1), OpenChemLib JS (JavaScript SMILES parser and isomeric SMILES writer) (1), Indigo 1.46.0 (WebAssembly, Ketcher standalone browser worker) (1), In-house (JavaScript parser/writer; stereo and isotopes omitted) (1), ChemDoodle Java API (remote iChemLabs CloudServices; readSMILES and writeSMILES) (1), Indigo (WebAssembly through ketcher-standalone) (1), RDKit (Python Chem.MolFromSmiles/MolToSmiles) (1), Ported from OASA (adapted Python SMILES reader/writer) (1), OpenChemLib (JavaScript, browser worker) (1), Indigo C++ conversion/layout (indigo-ketcher WebAssembly or Indigo HTTP service) (1), Indigo 1.46.0 (WebAssembly) (1), OpenChemLib (JavaScript) (1), OASA (vendored Python SMILES parser and writer); In-house (Python fallback SMILES writer) (1), RDKit.js @rdkit/rdkit 2025.3.4-1.0.0 (browser WebAssembly canonical SMILES); In-house (TypeScript fallback writer; user export only) (1), RDKit (C++; WebAssembly in browser build) (1), Open Babel SMILES format plugin (native C++ through optional obabeliface shared library) (1), In-house (TypeScript SMILES export without stereochemistry); RDKit (local Python/PyInstaller sidecar for SMILES import) (1), RDKit.js (WebAssembly) (1), Ported from CDK SmilesParser/CDKToBeam/InChINumbersTools (Java); Beam 1.3.2 (bundled Java); JNI-InChI 0.7 (local native canonical numbering); MCDL 1.00 (bundled Java coordinate generation) (1), RDKit.js (WebAssembly, import, with CoordGen layout); In-house (export) (1), CDK SmilesParser, SMILESReader, SmilesGenerator and SMILESWriter (Java) (1), In-house (Molsoft libchem, WebAssembly; asm.js fallback); Molsoft conversion service (remote server fallback) (1), RDKit.js (WebAssembly); JSME (Java compiled to JavaScript, editor SMILES) (1), CDK (Java SmilesGenerator, canonical output only) (1), Ported from RDKit (grammar and lexer reimplemented in Rust; ChemSema parser and writer) (1), RDKit.js (@rdkit/rdkit 2026.3.6, WebAssembly) (1), Ported from OpenChemLib SmilesParser and IsomericSmilesCreator (Java compiled to JavaScript with GWT) (1), RDKit.js (browser WebAssembly normalization/export); SmilesDrawer Parser/SvgDrawer.preprocessor (browser JavaScript import/layout) (1), In-house (JavaScript SMILES writer); Indigo or Open Babel (optional C++ compiled to WebAssembly readers) (1), OpenChemLib (GWT-compiled JavaScript, import); Ported from JME (GWT-compiled JavaScript, export) (1), In-house (Rust OpenSmilesCodec; bounded SMILES reader and writers) (1), Ketcher (bundled JavaScript; export only) (1), In-house (SMILES import only) (1), In-house (TypeScript SMILES subset parser; import only) (1), Kekule.js (JavaScript writer); Indigo (WebAssembly reader) (1), OASA (bundled Python SMILES parser and writer) (1), In-house (ChemDoodle Java file-format interpreters, local) (1), In-house (JavaScript native SMILES parser/writer); optional Indigo (WebAssembly conversion/layout) (1), In-house Chemaxon I/O SMILES module (local Java MolImporter/MolExporter) (1), RDKit SmilesWrite (vendor SciRDKit C++ compiled to browser WebAssembly; confirmed SMILES clipboard export) (1), RDKit.js (browser WebAssembly SMILES import); Ported from Ketcher (bundled JavaScript SmilesGenerator export) (1), In-house Chemaxon MolConvert (remote Java REST service via MJSWS, JChem Web Services or JChem Microservices; molconvertws) (1), OASA (Python SMILES parser/writer and coordinate generator) (1), Indigo (native C++ via Rust FFI; SMILES loading and canonical SMILES output) (1), Open Babel (C++ library in local babelserver helper; canonical SMILES export) (1), RDKit (C++) (1), In-house Marvin Web Services MolConvert (remote Java service) (1), Chem4Word ChemicalServices Resolve API (remote server; SMILES output; underlying engine undisclosed) (1), CDKSwiftNativePort (native Swift CDK SMILES/CXSMILES parser and SMILES writer) (1), In-house (JavaScript export); JSDraw Web Services (remote server import) (1), RDKit (native C++ SmilesToMol parser and MolToSmiles writer) (1), In-house (C++ libjcp_engine.so via N-API; SMILES subset) (1), idris2-chem (Idris chem package, SMILES import and Geom.Gen2D coordinates) (1), Indigo (browser WebAssembly through Ketcher standalone) (1), RDKit (Python Chem.MolFromSmiles and MolToSmiles) (1), Smidge (JavaScript) (1)

  • 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.

Structure export menu offers SMILES text.

Yes, tested by running it: Imported fixture SMILES; exported cholesterol SMILES text. ReShiki

0.14.0

Uses Ported from RDKit (Rust parser and writer)

Structure export menu offers SMILES text.

Caffeine molecule details display a SMILES string.

Partly: Import works; complex output changes stereochemistry; copying requires account. MolDraw

4.0

Uses In-house browser JavaScript SMILES parser/writer; optional Indigo 1.46.0 browser WebAssembly layout

Partly: Import works; complex output changes stereochemistry; copying requires account.

Caffeine molecule details display a SMILES string.

Molecular Inspector displays caffeine canonical SMILES.

Yes, tested by running it: All three pasted and exported; isomeric SMILES matched fixtures. ChemDraft

1.1.0

Uses RDKit MinimalLib (WebAssembly parsing and canonical export) + OpenChemLib (JavaScript import fallback) + In-house (TypeScript graph writer fallback)

Molecular Inspector displays caffeine canonical SMILES.

Export menu lists SMILES copy and download options.

Yes, tested by running it: Imported SMILES and downloaded SMILES. SketchIQ

dpl_44ysNf1Cbx9iepy8z4SrXP7…

Uses RDKit.js (WebAssembly, canonicalisation); Indigo (WebAssembly, through Ketcher import/export)

Export menu lists SMILES copy and download options.

Caffeine drawing and its SMILES string.

Yes, tested by running it: All three fixture SMILES imported; SMILES exports saved. Reactio Draw

1.10

Uses In-house JavaScript SMILES parser/writer; bundled OpenChemLib 9.25.1 JavaScript toIsomericSmiles for stereochemical output

Caffeine drawing and its SMILES string.

A caffeine structure and its loaded SMILES string.

Yes, tested by running it: SMILES import and Extra Info clipboard output verified. ChemThisTry

0.1.6

Uses Indigo (WebAssembly via ketcher-standalone)

A caffeine structure and its loaded SMILES string.

Benzoic acid structure and its displayed SMILES.

Yes, tested by running it: Imported caffeine SMILES and copied generated SMILES. FreeChemDraw

3.18.0

Uses Indigo (WebAssembly conversion/layout through Ketcher)

Benzoic acid structure and its displayed SMILES.

Caffeine structure and its SMILES in the species panel.

Yes, tested by running it: Imported all fixtures; exported caffeine SMILES. vibe-sketcher

0.6.5

Uses RDKit (Python bindings, local server)

Caffeine structure and its SMILES in the species panel.

Caffeine structure and its displayed SMILES string.

Yes, tested by running it: Pasted fixture SMILES and saved a .smi export. MolCanvas

0.4.0

Uses OpenChemLib (JavaScript npm package)

Caffeine structure and its displayed SMILES string.

Save Structure menu listing Daylight SMILES.

Yes, tested by running it: Imported SMILES and saved SMILES. BoltzDraw

Ketcher 2.24.0

Uses Indigo (WebAssembly)

Save Structure menu listing Daylight SMILES.

Structure on the canvas with a SMILES generation confirmation.

Yes, tested by running it: Imported SMILES and copied a generated SMILES. Chemliora

15.19.0

Uses OpenChemLib JS (JavaScript SMILES parser and isomeric SMILES writer)

Structure on the canvas with a SMILES generation confirmation.

Molecule analysis displays a SMILES field and Copy button.

Yes, tested by running it: Imported all fixtures; generated and copied cholesterol SMILES in Analysis. MoleditPy

5.1.3

Uses RDKit (Python Chem.MolFromSmiles/MolToSmiles)

Molecule analysis displays a SMILES field and Copy button.

A SMILES file displayed as a caffeine drawing.

Yes, tested by running it: SMILES files imported; Generate SMILES produced caffeine output. ChemCanvas

0.14.8

Uses Ported from OASA (adapted Python SMILES reader/writer)

A SMILES file displayed as a caffeine drawing.

Caffeine Infocard displays canonical and isomeric SMILES.

Yes, tested by running it: Loaded SMILES; Infocard displays isomeric SMILES. MolView.com

2026-11-02 (5ecc001a)

Uses OpenChemLib (JavaScript, browser worker)

Caffeine Infocard displays canonical and isomeric SMILES.

Molecular viewer with a SMILES input and 3D structure.

Partly: Imports work; generated SMILES lose all specified stereocenters. PyChem-Pro

1.0.0

Uses OASA (vendored Python SMILES parser and writer); In-house (Python fallback SMILES writer)

Partly: Imports work; generated SMILES lose all specified stereocenters.

Molecular viewer with a SMILES input and 3D structure.

Ethylbenzene drawing and its SMILES identifier.

Partly: SMILES exports; pasting fixture SMILES did not import. Molecule Builder (OvOHongYu)

0.1.0

Uses RDKit.js @rdkit/rdkit 2025.3.4-1.0.0 (browser WebAssembly canonical SMILES); In-house (TypeScript fallback writer; user export only)

Partly: SMILES exports; pasting fixture SMILES did not import.

Ethylbenzene drawing and its SMILES identifier.

Format menu lists SMILES and Extended SMILES.

Yes, tested by running it: Pasted fixture SMILES; exported imported methanol as CO. Schrödinger Sketcher

Release 2026-4 (build 131)

Uses RDKit (C++; WebAssembly in browser build)

Format menu lists SMILES and Extended SMILES.

Benzene on the canvas with its SMILES string.

Yes, tested by running it: Imported and copied both fixture SMILES. BondCraft

0.2.1

Uses RDKit.js (WebAssembly, import, with CoordGen layout); In-house (export)

Benzene on the canvas with its SMILES string.

Import dialog accepts pasted MOL, SMILES or InChI.

Yes, tested by running it: Imported and exported both fixture SMILES. Molsoft HTML5 Molecule Editor

v1.6.0

Uses In-house (Molsoft libchem, WebAssembly; asm.js fallback); Molsoft conversion service (remote server fallback)

Import dialog accepts pasted MOL, SMILES or InChI.

Canonical SMILES and InChI in the representations panel.

Yes, tested by running it: SMILES input produced canonical SMILES output. Molecule Clipboard

6e00a7d

Uses RDKit.js (WebAssembly); JSME (Java compiled to JavaScript, editor SMILES)

Canonical SMILES and InChI in the representations panel.

Computed SMILES and identifiers for benzene.

Partly: Computed SMILES displayed; pasted SMILES did not import. SketchScape

1.0

Uses RDKit (Python)

Partly: Computed SMILES displayed; pasted SMILES did not import.

Computed SMILES and identifiers for benzene.

SMILES import dialog with example strings.

Yes, tested by running it: Imported through dialog; standalone API returned SMILES. Structura (chem-structura)

0.8.0

Uses RDKit.js (@rdkit/rdkit 2026.3.6, WebAssembly)

SMILES import dialog with example strings.

A caffeine structure alongside its SMILES output.

Yes, tested by running it: Pasted SMILES and copied generated SMILES. OpenChemLib JS editor

v9.25.2

Uses Ported from OpenChemLib SmilesParser and IsomericSmilesCreator (Java compiled to JavaScript with GWT)

A caffeine structure alongside its SMILES output.

A caffeine drawing with its SMILES output.

Partly: Caffeine matched; paclitaxel output changed ten stereocenters. MolSketch

build m0PiI1PnCmq4Tn2qz-p-a

Uses RDKit.js (browser WebAssembly normalization/export); SmilesDrawer Parser/SvgDrawer.preprocessor (browser JavaScript import/layout)

Partly: Caffeine matched; paclitaxel output changed ten stereocenters.

A caffeine drawing with its SMILES output.

SMILES dialog above a glutathione structure.

Yes, tested by running it: Imported and exported both 2D fixture SMILES. JSME Molecule Editor

v2024-04-29

Uses OpenChemLib (GWT-compiled JavaScript, import); Ported from JME (GWT-compiled JavaScript, export)

SMILES dialog above a glutathione structure.

A SMILES entry and its rendered structure.

Partly: SMILES input renders; no SMILES output control found. RadSketch

b7450e4

Uses In-house

Partly: SMILES input renders; no SMILES output control found.

A SMILES entry and its rendered structure.

Loaded SMILES appears above an overlapping molecular drawing.

Partly: Import corrupted both fixtures; SMILES export reports unimplemented. Butlerov

0.1.6

Uses In-house (SMILES import only)

Partly: Import corrupted both fixtures; SMILES export reports unimplemented.

Loaded SMILES appears above an overlapping molecular drawing.

Available, no screenshot

ChemDraw's license keeps us from publishing pictures of its interface.

Not available

Not established (14)

ChemWindow (KnowItAll ChemWindow Edition), Chemtool, Lhendraw, MoleculeSketch, FX ChemStruct / FX Draw Chemical Structures, Chemistry 4-D Draw, EasyChem, MyChemise, MolPrime+, Chirys Draw, Chem Sketcher (Non_REM.Persona Laboratory), Chemograph Plus, ChemWorks, Molecule

Open the full pageManual