This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
Structure checking
Valence or structure problems are flagged.
88 tools have this, 11 of them shown here. 1 do not. 39 not established.
What powers it: In-house (6), Ketcher (TypeScript); Indigo (WebAssembly) (2), RDKit (Python) (2), Ported from RDKit (Rust) (1), In-house browser JavaScript valence, charge and stereo checks (1), RDKit (C++) valence and stereo perception; In-house (C++) structure checks (1), In-house (TypeScript valence, charge and geometry checks); Indigo (WebAssembly stereochemistry checks) (1), In-house (TypeScript native valence rules) + RDKit MinimalLib (WebAssembly structure validation) (1), Indigo (WebAssembly, valence and radical checks) (1), In-house valenceProblems and valencesFor (JavaScript modules in browser) (1), In-house JavaScript valence and drawing checks; bundled OpenChemLib 9.25.1 JavaScript stereo perception for stereochemical warnings (1), Ketcher 3.17.2 (TypeScript calcValence/badConn live warnings); Indigo 1.45.1 (WebAssembly explicit structure check) (1), In-house (TypeScript incremental atom, valence, isotope and label checks) (1), Ketcher (TypeScript valence model) and Indigo (WebAssembly structure checks) (1), In-house (chematic-core and chematic-perception, Rust/WebAssembly; bridge structural validation) (1), RDKit.js (WebAssembly sanitization); In-house (JavaScript advisories) (1), Ketcher TypeScript valence rules; Indigo WebAssembly full structure checker (1), RDKit (Python sanitization, local server) + In-house structure checks (1), RDKit (Python Chem.DetectChemistryProblems/SanitizeMol); in-house coverage warnings (1), In-house (browser JavaScript valence, charge, bond and aromaticity rules) (1), In-house (TypeScript valence rules) (1), Ketcher TypeScript valence rules; Indigo WebAssembly structure checker; In-house TypeScript side-panel validation (1), OpenChemLib JS (JavaScript valence and aromaticity analysis); In-house (JavaScript charge checks) (1), Ketcher (TypeScript valence checks); Indigo (WebAssembly structure checks) (1), In-house (JavaScript, browser) (1), Ketcher (TypeScript valence checks); Indigo (WebAssembly additional structure checks) (1), RDKit (Python Chem.SanitizeMol; custom atom highlighting) (1), In-house TypeScript valence rules; Indigo C++ full structure checker via WebAssembly or HTTP service (1), Ketcher 3.18.0 (TypeScript valence rules) (1), OpenChemLib (JavaScript) (1), In-house (TypeScript valence tables and bond-order checks) (1), In-house (Python conservative valence warnings) (1), RDKit (C++; WebAssembly in browser build) (1), In-house (TypeScript valence-table checks; transition metals exempt) (1), RDKit.js (WebAssembly) (1), CDK (Java CDKAtomTypeMatcher and CDKHydrogenAdder); In-house (Kotlin error markers) (1), RDKit (Python sanitization); In-house (error reporting) (1), In-house (Rust live element valence and label validation) (1), Ported from OpenChemLib ExtendedMolecule.validate (Java compiled to JavaScript with GWT) (1), In-house browser JavaScript graph/valence checks plus RDKit.js browser WebAssembly get_mol validation (1), In-house (Elemental JavaScript) (1), WebMolKit (TypeScript; overlapping-atom checks only) (1), In-house (JavaScript; Kekule.IssueCheck.AtomValenceChecker) (1), In-house (C++ Molecule::ValenceErrors and MolData valence table) (1), In-house (Java overlapping-atom warnings only) (1), In-house (Rust chemifree-valence-3 bounded valence model) (1), Ketcher (bundled JavaScript) (1), In-house (JavaScript fixed-valence and explicit-bond checks) (1), Ported from Open Babel (MDL valence model rewritten in TypeScript) (1), Ported from BKChem (Python validator using bundled OASA valence model) (1), In-house (JavaScript valence, charge and stereo heuristics) (1), In-house Marvin JS (Java compiled to browser JavaScript by GWT; native valence-error checking) (1), In-house (Python validator) with OASA (Python atom valence) (1), Indigo (native C++ via Rust FFI; indigoCheckObj) (1), In-house (Rust neutral bond-capacity check) (1), In-house ValenceCalculator (Java compiled by GWT to browser JavaScript) (1), In-house Chem4Word.Model2 PeriodicTable.SpareValencies/Atom.Overbonded (C#) (1), cht (bundled local C executable; overlapping-bond warnings only) (1), In-house (C++ carbon bond-order-sum check) (1), In-house (JSDraw2.Mol.setHCount, JavaScript) (1), RDKit (native C++ MolOps::sanitizeMol and AtomValenceException) (1), idris2-chem (Idris chem package, atom-type validation); In-house (invalid-atom highlighting) (1), MMDS core library (Objective-C, local) (1), RDKit (Python Chem.SanitizeMol) (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.

Yes, tested by running it: Default paclitaxel layout triggered a highlighted ring-stereobond warning. Reactio Draw
1.10
Uses In-house JavaScript valence and drawing checks; bundled OpenChemLib 9.25.1 JavaScript stereo perception for stereochemical warnings
Highlighted ring bond and a stereobond warning.

Yes, according to the manual: Validates chemical valence and reports structure errors. Chematic Draw
chematic 1.0.38 (build inde…
Uses In-house (chematic-core and chematic-perception, Rust/WebAssembly; bridge structural validation)
The validation panel reports no errors beside a structure.

Yes, according to the manual: Embedded Ketcher underlines atoms with incorrect valence in red. FreeChemDraw
3.18.0
Uses Ketcher TypeScript valence rules; Indigo WebAssembly full structure checker
Settings dialog with Show valence warnings enabled.

Yes, according to the manual: Invalid valence is underlined; structure checking is available. Kendraw
0.1.0
Uses Ketcher TypeScript valence rules; Indigo WebAssembly structure checker; In-house TypeScript side-panel validation
Settings dialog with valence warnings enabled.

Yes, according to the manual BoltzDraw
Ketcher 2.24.0
Uses Ketcher (TypeScript); Indigo (WebAssembly)
Settings dialog with the valence warnings option enabled.

Yes, according to the manual: Flags excess valence, overlapping atoms, and undefined stereocenters. Zeanium Molecule Drawer
Hosted, 5 Nov 2026
Uses In-house (JavaScript, browser)
The structure check flags ten items to review.

Yes, according to the manual: Invalid valence is underlined in red. Ketcher
3.18.0
Uses In-house TypeScript valence rules; Indigo C++ full structure checker via WebAssembly or HTTP service
Settings dialog with Show valence warnings enabled.

Yes, according to the manual Schrödinger Sketcher
Release 2026-4 (build 131)
Uses RDKit (C++; WebAssembly in browser build)
View menu shows Valence Errors enabled.

Yes, according to the manual: Flags excessive valence using a limited built-in element table. RadSketch
b7450e4
Uses In-house
The molecule panel displays a valence indicator reading OK.

Yes, tested by running it: Warnings flag overbonded and underbonded atoms. ChemMD
0.1.0 (2768408)
Uses In-house (JavaScript fixed-valence and explicit-bond checks)
Warnings list atoms with fewer bonds than expected.

Yes, according to the manual: Sanitization failures appear in the status bar. rdEditor
0.5.1
Uses RDKit (Python)
Caffeine structure with Sanitizable status shown.
Available, no screenshot
ChemDraw's license keeps us from publishing pictures of its interface.
- Yes, tested by running it: Check Structure on caffeine returned No errors found. Opens the cited page.ChemDrawCheck Structure on caffeine returned No errors found.
- Yes, according to the manual: Chemistry errors appear in Properties/Labels; no per-atom warning overlays. Opens the cited page.ReShikiUses Ported from RDKit (Rust). Chemistry errors appear in Properties/Labels; no per-atom warning overlays.Source
- Yes, according to the manual: Flags excessive valence, unusual charge, and stereo problems. Opens the cited page.MolDrawUses In-house browser JavaScript valence, charge and stereo checks. Flags excessive valence, unusual charge, and stereo problems.Source
- Yes, according to the manual: Flags excess valence and lists structural or stereo problems. Opens the cited page.PenzeneUses RDKit (C++) valence and stereo perception; In-house (C++) structure checks. Flags excess valence and lists structural or stereo problems.Source
- Yes, according to the manual: Flags valence and other structure problems. Opens the cited page.Octet DrawUses In-house (TypeScript valence, charge and geometry checks); Indigo (WebAssembly stereochemistry checks). Flags valence and other structure problems.Source
- Yes, according to the manual. Opens the cited page.ChemDraftUses In-house (TypeScript native valence rules) + RDKit MinimalLib (WebAssembly structure validation). Source
- Yes, according to the manual. Opens the cited page.SketchIQUses Indigo (WebAssembly, valence and radical checks). Source
- Yes, according to the manual: Valence problems are displayed in the Check section. Opens the cited page.CovalentUses In-house valenceProblems and valencesFor (JavaScript modules in browser). Valence problems are displayed in the Check section.Source
- Yes, according to the manual: Invalid valence is underlined in red. Opens the cited page.ChemEditUses Ketcher 3.17.2 (TypeScript calcValence/badConn live warnings); Indigo 1.45.1 (WebAssembly explicit structure check). Invalid valence is underlined in red.Source
- Yes, according to the manual. Opens the cited page.Chem IllustratorUses In-house (TypeScript incremental atom, valence, isotope and label checks). Source
- Yes, according to the manual: Sketcher Check reports structure issues. Opens the cited page.ChemThisTryUses Ketcher (TypeScript valence model) and Indigo (WebAssembly structure checks). Sketcher Check reports structure issues.Source
- Yes, according to the manual. Opens the cited page.Molecule Lab (The Freshman Mole)Uses RDKit.js (WebAssembly sanitization); In-house (JavaScript advisories). Source
- Yes, tested by running it: Invalid carbon valence flagged during manual drawing. Opens the cited page.vibe-sketcherUses RDKit (Python sanitization, local server) + In-house structure checks. Invalid carbon valence flagged during manual drawing.Source
- Yes, according to the manual: Manual RDKit checks; metal and unsupported-label coverage is incomplete. Opens the cited page.ErezDrawUses RDKit (Python Chem.DetectChemistryProblems/SanitizeMol); in-house coverage warnings. Manual RDKit checks; metal and unsupported-label coverage is incomplete.Source
- Yes, according to the manual. Opens the cited page.MolChartUses In-house (browser JavaScript valence, charge, bond and aromaticity rules). Source
- Yes, according to the manual: Valence problems are collected for on-canvas warnings. Opens the cited page.MolCanvasUses In-house (TypeScript valence rules). Valence problems are collected for on-canvas warnings.Source
- Yes, according to the manual. Opens the cited page.ChemlioraUses OpenChemLib JS (JavaScript valence and aromaticity analysis); In-house (JavaScript charge checks). Source
- Yes, according to the manual: Ketcher underlines invalid valences in red. Opens the cited page.MolbrettUses Ketcher (TypeScript valence checks); Indigo (WebAssembly structure checks). Ketcher underlines invalid valences in red.Source
- Yes, according to the manual: MOL/SMILES file operations display sanitization errors. Opens the cited page.BondForgeUses RDKit (Python). MOL/SMILES file operations display sanitization errors.Source
- Yes, according to the manual: Ketcher underlines atoms with invalid valence in red. Opens the cited page.Chemeditor (Chemrise)Uses Ketcher (TypeScript valence checks); Indigo (WebAssembly additional structure checks). Ketcher underlines atoms with invalid valence in red.Source
- Yes, according to the manual: Flags valence problems before 3D conversion. Opens the cited page.MoleditPyUses RDKit (Python Chem.SanitizeMol; custom atom highlighting). Flags valence problems before 3D conversion.Source
- Yes, according to the manual: Invalid atom valences are underlined in red. Opens the cited page.AI Chemical Drawing (CubicZnS)Uses Ketcher 3.18.0 (TypeScript valence rules). Invalid atom valences are underlined in red.Source
- Yes, according to the manual: Basic structure check flags valence and stereochemistry issues. Opens the cited page.OpenReactionsUses OpenChemLib (JavaScript). Basic structure check flags valence and stereochemistry issues.Source
- Yes, tested by running it: Attempted overvalent carbon flagged and rejected. Opens the cited page.Molecule Builder (OvOHongYu)Uses In-house (TypeScript valence tables and bond-order checks). Attempted overvalent carbon flagged and rejected.Source
- Yes, according to the manual: Invalid atom valences are underlined in red. Opens the cited page.KetchDrawUses Ketcher (TypeScript); Indigo (WebAssembly). Invalid atom valences are underlined in red.Source
- Yes, according to the manual: Flags questionable valences for H, B, C, N, O and F. Opens the cited page.ChemvasUses In-house (Python conservative valence warnings). Flags questionable valences for H, B, C, N, O and F.Source
- Yes, according to the manual: Flags excess valence; transition metals are exempt. Opens the cited page.ChemableUses In-house (TypeScript valence-table checks; transition metals exempt). Flags excess valence; transition metals are exempt.Source
- Yes, according to the manual. Opens the cited page.WaveSpeed AI Chemical Structure DrawerUses In-house. Source
- Yes, according to the manual: Octet violations receive red wavy halos. Opens the cited page.BondCraftUses In-house. Octet violations receive red wavy halos.Source
- Yes, according to the manual: Invalid molecules trigger parsing or validity errors. Opens the cited page.Molecule ClipboardUses RDKit.js (WebAssembly). Invalid molecules trigger parsing or validity errors.Source
- Yes, according to the manual. Opens the cited page.MolGLideXUses CDK (Java CDKAtomTypeMatcher and CDKHydrogenAdder); In-house (Kotlin error markers). Source
- Yes, according to the manual: Structure computation reports valence and aromaticity errors. Opens the cited page.SketchScapeUses RDKit (Python sanitization); In-house (error reporting). Structure computation reports valence and aromaticity errors.Source
- Yes, according to the manual. Opens the cited page.ChemSemaUses In-house (Rust live element valence and label validation). Source
- Yes, according to the manual: Flags atoms with abnormal valence. Opens the cited page.Structura (chem-structura)Uses In-house. Flags atoms with abnormal valence.Source
- Yes, according to the manual: API validation throws errors for excessive valence and unbalanced charge. Opens the cited page.OpenChemLib JS editorUses Ported from OpenChemLib ExtendedMolecule.validate (Java compiled to JavaScript with GWT). API validation throws errors for excessive valence and unbalanced charge.Source
- Yes, according to the manual: Checks valence, invalid elements, duplicate bonds, and RDKit validity. Opens the cited page.MolSketchUses In-house browser JavaScript graph/valence checks plus RDKit.js browser WebAssembly get_mol validation. Checks valence, invalid elements, duplicate bonds, and RDKit validity.Source
- Yes, according to the manual: Automatically flags valence violations; vendor claim. Opens the cited page.Dotmatics Elemental / Elemental DrawUses In-house (Elemental JavaScript). Automatically flags valence violations; vendor claim.Source
- Partly: Projected SDF shows red overlap marker; valence checking unverified. Opens the cited page.SketchEl 2Uses WebMolKit (TypeScript; overlapping-atom checks only). Projected SDF shows red overlap marker; valence checking unverified.Source
- Yes, according to the manual: Reports abnormal atom valences as errors. Opens the cited page.Kekule.jsUses In-house (JavaScript; Kekule.IssueCheck.AtomValenceChecker). Reports abnormal atom valences as errors.Source
- Yes, according to the manual. Opens the cited page.XDrawChemUses In-house (C++ Molecule::ValenceErrors and MolData valence table). Source
- Partly: Overlap warnings only; chemical valence validation unverified. Opens the cited page.SketchElUses In-house (Java overlapping-atom warnings only). Overlap warnings only; chemical valence validation unverified.Source
- Yes, according to the manual: Bounded valence model flags invalid and unsupported atom states. Opens the cited page.ChemifreeUses In-house (Rust chemifree-valence-3 bounded valence model). Bounded valence model flags invalid and unsupported atom states.Source
- Yes, according to the manual: Invalid connectivity receives a red warning. Opens the cited page.Ketcherails (ketcher-rails)Uses Ketcher (bundled JavaScript). Invalid connectivity receives a red warning.Source
- Yes, according to the manual: Bond edits trigger a Valence Warning with undo/reduction choices. Opens the cited page.JMolDrawUses In-house. Bond edits trigger a Valence Warning with undo/reduction choices.Source
- Yes, tested by running it: Invalid bond order produced a red underline on nitrogen. Opens the cited page.MolTouchUses In-house. Invalid bond order produced a red underline on nitrogen.Source
- Yes, according to the manual. Opens the cited page.SketChemUses Ported from Open Babel (MDL valence model rewritten in TypeScript). Source
- Partly: Validator exists; lazy map() prevents molecule checks under Python 3. Opens the cited page.BKChem Python 3 ModernizedUses Ported from BKChem (Python validator using bundled OASA valence model). Validator exists; lazy map() prevents molecule checks under Python 3.Source
- Yes, according to the manual. Opens the cited page.ChemDoodle 2DSource
- Yes, according to the manual: Local heuristic flags valence, charge and stereo problems. Opens the cited page.LabCanvas Figure Editor / MolDrawUses In-house (JavaScript valence, charge and stereo heuristics). Local heuristic flags valence, charge and stereo problems.Source
- Yes, according to the manual. Opens the cited page.Marvin Desktop Suite / MarvinSketchSource
- Yes, according to the manual: Structure problems receive red warning borders. Opens the cited page.ChemDraft (元素智研)Structure problems receive red warning borders.Source
- Yes, according to the manual: Red warnings flag valence and connectivity errors. Opens the cited page.InDrawRed warnings flag valence and connectivity errors.Source
- Yes, according to the manual: Marks atoms with incorrect valence. Opens the cited page.Marvin JSUses In-house Marvin JS (Java compiled to browser JavaScript by GWT; native valence-error checking). Marks atoms with incorrect valence.Source
- Yes, according to the manual: Reports exceeded valence and zero-order bonds. Opens the cited page.BKChemUses In-house (Python validator) with OASA (Python atom valence). Reports exceeded valence and zero-order bonds.Source
- Yes, according to the manual: Flags excessive valences, overlaps, and stereochemistry rule violations. Opens the cited page.BIOVIA DrawFlags excessive valences, overlaps, and stereochemistry rule violations.Source
- Yes, according to the manual: Flags invalid labels and incorrect valences. Opens the cited page.ChemWindow (KnowItAll ChemWindow Edition)Flags invalid labels and incorrect valences.Source
- Yes, according to the manual: Invalid valences are underlined; structure-check command also available. Opens the cited page.Chemistry DrawUses Indigo (native C++ via Rust FFI; indigoCheckObj). Invalid valences are underlined; structure-check command also available.Source
- Yes, according to the manual: Structure errors are indicated on hover. Opens the cited page.Zoho ChemStudioStructure errors are indicated on hover.Source
- Yes, according to the manual: Incorrect structures receive red error frames. Opens the cited page.KingDrawIncorrect structures receive red error frames.Source
- Yes, according to the manual: Live valence warnings and Structure Check; vendor claim. Opens the cited page.ChemPencilLive valence warnings and Structure Check; vendor claim.Source
- Partly: Bounded neutral-atom capacity warnings; explicitly not general chemical-validity checking. Opens the cited page.Ferrum Chemical ForgeUses In-house (Rust neutral bond-capacity check). Bounded neutral-atom capacity warnings; explicitly not general chemical-validity checking.Source
- Yes, according to the manual: Valence errors are highlighted by default. Opens the cited page.Marvin CloudUses In-house ValenceCalculator (Java compiled by GWT to browser JavaScript). Valence errors are highlighted by default.Source
- Yes, according to the manual: Overbonded atoms receive warning circles. Opens the cited page.Chem4WordUses In-house Chem4Word.Model2 PeriodicTable.SpareValencies/Atom.Overbonded (C#). Overbonded atoms receive warning circles.Source
- Yes, according to the manual: Valence and Validation warn about abnormal bond counts. Opens the cited page.AtomLensValence and Validation warn about abnormal bond counts.Source
- Yes, according to the manual: Companion cht flags duplicate bonds during formula calculation. Opens the cited page.ChemtoolUses cht (bundled local C executable; overlapping-bond warnings only). Companion cht flags duplicate bonds during formula calculation.Source
- Yes, according to the manual: Command locates carbons with bond-order sums of five or more. Opens the cited page.LhendrawUses In-house (C++ carbon bond-order-sum check). Command locates carbons with bond-order sums of five or more.Source
- Yes, according to the manual: Structure errors can be highlighted in red boxes. Opens the cited page.JSDrawUses In-house (JSDraw2.Mol.setHCount, JavaScript). Structure errors can be highlighted in red boxes.Source
- Yes, according to the manual: RDKit sanitization errors appear in the properties panel. Opens the cited page.ChemCADUses RDKit (native C++ MolOps::sanitizeMol and AtomValenceException). RDKit sanitization errors appear in the properties panel.Source
- Yes, according to the manual: Warns when bond counts exceed atom valence. Opens the cited page.MoleculeSketchMWarns when bond counts exceed atom valence.Source
- Yes, according to the manual: Invalid atom labels and valence errors are flagged. Opens the cited page.ChemStitchFreeInvalid atom labels and valence errors are flagged.Source
- Yes, according to the manual: Warns when bonds exceed typical valence; vendor claim. Opens the cited page.MolSketchGoWarns when bonds exceed typical valence; vendor claim.Source
- Yes, according to the manual: Invalid perceived atom types receive an error background. Opens the cited page.CyBy-DrawUses idris2-chem (Idris chem package, atom-type validation); In-house (invalid-atom highlighting). Invalid perceived atom types receive an error background.Source
- Yes, according to the manual: Valence problems are marked; vendor claim. Opens the cited page.Elk_Draw RDKitValence problems are marked; vendor claim.Source
- Yes, according to the manual: Highlights atomic valence violations. Opens the cited page.MolPrime+Uses MMDS core library (Objective-C, local). Highlights atomic valence violations.Source
- Yes, according to the manual: vendor claim; real-time RDKit sanitization errors flag invalid structures. Opens the cited page.MolGenDrawUses RDKit (Python Chem.SanitizeMol). vendor claim; real-time RDKit sanitization errors flag invalid structures.Source
- Yes, according to the manual: Vendor claim: flags common drawing errors. Opens the cited page.StructoVendor claim: flags common drawing errors.Source
- Yes, according to the manual: Vendor-coauthored 2002 publication; current edition unspecified. Opens the cited page.Chemograph PlusVendor-coauthored 2002 publication; current edition unspecified.Source
Not available
- No: Six-bond carbon rendered without a chemical validation warning. Opens the cited page.chemfigSix-bond carbon rendered without a chemical validation warning.
Not established (39)
Sciformation VectorMol, ChemDoodle Web Components, ChemCanvas, MolView.com, PyChem-Pro, Molsketch, cDraw, JChemPaint, Molsoft HTML5 Molecule Editor, JSME Molecule Editor, Butlerov, schematic, WebMolKit, ChemCanvasJS, Chemical Structure Editor (CSE), Kemia, Chemeditor (Chemie-Lernprogramme), vue-chemdraw (0chem), ChemWriter, MCDL Java Chemical Structure Editor, Glass, molsketch-cljs, MolPad, GChemPaint, ACD/ChemSketch, FX ChemStruct / FX Draw Chemical Structures, Chemistry 4-D Draw, BondDraw, ChemGraphic 2, EasyChem, MyChemise, Chem+ Molecular Structure Editor, Chirys Draw, ChemScribble, Chem Sketcher (Non_REM.Persona Laboratory), alvaSketcher, moled, ChemWorks, Molecule