This website is biased toward ReShiki, because its maintainer also maintains ReShiki. Please be careful.
Structura (chem-structura)
An embeddable 2D chemical structure editor for drawing molecules and patent Markush formulas.
Open source. 34 of 65 checklist features confirmed.
Main canvas
Theme selector enabled via documented embedding API; hidden by default.
Default drawings
- Default drawing colors heteroatoms red and blue.
- SMILES import generated 2D layouts without cleanup.
- Imported 3D coordinates triggered a projection warning.
- The interface is in Chinese.
- Installed size includes package dependencies but excludes the browser test harness.
Facts
- GitHub stars
- 0 stars on 6 Nov 2026
- First commit
- 25 Sept 2026
- Repository activity
- 283 commits, 1 contributor, last push 27 Oct 2026
- Latest version
- [email protected]
- Version we tested
- 0.8.0
- Runs on
- Browser
- License
- MIT-licensed editor and source code.
- Price
- Free
- Relies on
- RDKit. Custom SVG canvas; RDKit supports SMILES, identifiers, and coordinate generation.
- Draws with
- Custom SVG scene renderer; React SVG on screen, HTML canvas for PNG output
- Chemistry from
- In-house Structura core and RDKit WebAssembly
- Interface
- React 19, Radix UI, Tailwind CSS
- Main language
- TypeScript
- Other languages
- C++: RDKit chemistry compiled to WebAssembly; Rust: Server SVG rasterization via resvg-js
- Renderer
- Original: Structura SVG scene renderer
- Third-party licenses
- Includes OFL-1.1 (Geist fonts) and MPL-2.0 (AI service's resvg); UI/RDKit dependencies MIT/BSD/ISC.
- Download
- 1.3 MB
- Installed
- 81 MB
- Chinese interface; distributed as a component or source app.
- CDXML import accepts only unchanged Structura exports with embedded document data.
- Root README retains removed fillVariables/wordExport props; use the 0.8.0 package documentation.
In use
Screenshots from our test of this version.

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

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

Ring tools
Benzene and quinoline structures on the canvas.

Template library
Quinoline template and benzene on the canvas.

Charges, isotopes and atom labels
Element palette and nitrogen label on a ring structure.

Formula and mass
Caffeine structure with formula and mass in the status bar.

CDXML import and export
CDXML import warning describes supported Structura-exported files.

SMILES
SMILES import dialog with example strings.
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. Opens the screenshot.Single, double and triple bondsDrew single, double, and triple bonds.github.com
- Yes, tested by running it: Drew solid wedge, hashed wedge, and wavy bonds. Opens the screenshot.Wedge, hash and wavy bondsDrew solid wedge, hashed wedge, and wavy bonds.github.com
- No: Coordination and hydrogen bonds are downgraded to single bonds. Opens the cited page.Dative, hydrogen and quadruple bondsCoordination and hydrogen bonds are downgraded to single bonds.github.com
- Not establishedChoose double-bond side
- Yes, tested by running it: Placed benzene; ring palette offers other sizes. Opens the screenshot.Ring toolsPlaced benzene; ring palette offers other sizes.github.com
- Yes, according to the manual: Hover keys 9 and 0 create mirrored chair conformations. Opens the cited page.Chair and Haworth ringsHover keys 9 and 0 create mirrored chair conformations.github.com
- Yes, according to the manual. Opens the cited page.Chain toolgithub.com
- Yes, tested by running it: Placed quinoline from template library. Opens the screenshot.Template libraryPlaced quinoline from template library.github.com
- Yes, according to the manual: Saving fragment templates requires a backend or host-provided template store. Opens the cited page.Save your own templatesSaving fragment templates requires a backend or host-provided template store.github.com
- Yes, according to the manual. Opens the cited page.Group abbreviationsgithub.com
- Yes, according to the manual: Element labels and isotopes; charge tools documented on drawing page. Opens the cited page.Charges, isotopes and atom labelsElement labels and isotopes; charge tools documented on drawing page.github.com
- Not establishedRadicals and lone pairs
- Yes, according to the manual. Opens the cited page.Keyboard drawinggithub.com
- Yes, according to the manual. Opens the cited page.Lasso select and transformsgithub.com
- Yes, according to the manual: Tumble operations rotate selected atoms out of plane, then project. Opens the cited page.Tilt drawings in perspectiveTumble operations rotate selected atoms out of plane, then project.github.com
Reactions and mechanisms
- No: No arrow command found in menus or toolbar. Opens the cited page.Reaction arrowsNo arrow command found in menus or toolbar.github.com
- No: No curved-arrow tool found in menus or toolbar. Opens the cited page.Curved mechanism arrowsNo curved-arrow tool found in menus or toolbar.
- Not establishedMachine-readable reactions
- Not establishedAtom mapping
- Not establishedOrbitals and symbols
Figures and layout
- Not establishedRich text captions
- Partly: Structure brackets and Markush attachment curves only. Opens the cited page.Shapes, brackets and curvesStructure brackets and Markush attachment curves only.github.com
- Not establishedAlign and distribute
- Partly: Abbreviation groups move together; general object grouping is unverified. Opens the cited page.Group and ungroupAbbreviation groups move together; general object grouping is unverified.github.com
- Yes, according to the manual. Opens the cited page.2D structure cleanupgithub.com
- Partly: CDXML export applies ACS 1996 bond sizing only. Opens the cited page.Journal drawing stylesCDXML export applies ACS 1996 bond sizing only.github.com
- Not establishedReusable custom styles
- Partly: Automatic element colors only. Opens the cited page.Color controlAutomatic element colors only.github.com
- Partly: Blue selection halos only; omitted from SVG/PNG exports. Opens the cited page.Color highlightingBlue selection halos only; omitted from SVG/PNG exports.github.com
- Not establishedPage layout and multipage
- Not establishedImported pictures
- Not establishedTLC plates and tables
Chemistry intelligence
- Yes, according to the manual: Flags atoms with abnormal valence. Opens the cited page.Structure checkingFlags atoms with abnormal valence.github.com
- Not establishedR/S and E/Z labels
- Yes, tested by running it: Caffeine displayed C8H10N4O2 and 194.19. Opens the screenshot.Formula and massCaffeine displayed C8H10N4O2 and 194.19.github.com
- Not establishedProperty estimates
- No: SMILES import rejected caffeine; no name command found. Opens the cited page.Name to structureSMILES import rejected caffeine; no name command found.
- No: No naming command found for imported caffeine. Opens the cited page.Structure to nameNo naming command found for imported caffeine.
- Not establishedNMR prediction
- Yes, according to the manual: Variable definitions and enumeration UI live in the separate app workspace. Opens the cited page.R-groups and query structuresVariable definitions and enumeration UI live in the separate app workspace.github.com
- Yes, according to the manual: Semantic SRU brackets retain repeat ranges and support bounded expansion. Opens the cited page.Polymers and repeat unitsSemantic SRU brackets retain repeat ranges and support bounded expansion.github.com
- Not establishedPeptides and nucleic acids
- Yes, according to the manual: Requires a configured AI server and model API credentials. Opens the cited page.Image to structureRequires a configured AI server and model API credentials.github.com
- Not establishedOnline structure lookup
- No: SDF projected to plane; no 3D view found. Opens the cited page.3D model viewSDF projected to plane; no 3D view found.
- Not establishedCrystal structures
Files and exchange
- Partly: Own export reopens; removing embedded record causes rejection. Opens the screenshot.CDXML import and exportOwn export reopens; removing embedded record causes rejection.github.com
- Not establishedCDX import and export
- Yes, tested by running it: Imported MOL and SDF; exported MOL. Opens the cited page.MOL and SDFImported MOL and SDF; exported MOL.github.com
- Yes, tested by running it: Imported through dialog; standalone API returned SMILES. Opens the screenshot.SMILESImported through dialog; standalone API returned SMILES.github.com
- Yes, according to the manual: RDKit-backed InChI and InChIKey export; variables are rejected. Opens the cited page.InChIRDKit-backed InChI and InChIKey export; variables are rejected.github.com
- Not establishedRXN files
- Yes, tested by running it: Exported SVG from both SMILES fixtures. Opens the cited page.SVG exportExported SVG from both SMILES fixtures.github.com
- No: No PDF command found in file menu. Opens the cited page.PDF exportNo PDF command found in file menu.
- Partly: Standalone API generated PNG; no DPI setting found. Opens the cited page.High-resolution PNGStandalone API generated PNG; no DPI setting found.github.com
- Not establishedPaste to and from ChemDraw
- Partly: App compound tables require chem2office for editable ChemDraw objects in Word. Opens the cited page.Editable in Word or PowerPointApp compound tables require chem2office for editable ChemDraw objects in Word.github.com
- No: chem2office exports ChemDraw OLE requiring ChemDraw, not Structura. Opens the cited page.Windows Office OLEchem2office exports ChemDraw OLE requiring ChemDraw, not Structura.github.com
APIs and automation
- Not establishedPython API
- Yes, according to the manual. Opens the cited page.JavaScript or TypeScript APIgithub.com
- Not establishedCommand-line tool
- Yes, according to the manual: Documented JSON editing operations shared with agents. Opens the cited page.AI agent controlDocumented JSON editing operations shared with agents.github.com
- Yes, according to the manual: AI builds editable structures; requires configured server and model credentials. Opens the cited page.Built-in AI assistantAI builds editable structures; requires configured server and model credentials.github.com
Embedding and extension
- Not establishedPlugins
- Yes, according to the manual: React StructuraEditor, ChemStructura.mount(), or editable <chem-molecule> via standalone script. Opens the cited page.Embed in your own appReact StructuraEditor, ChemStructura.mount(), or editable <chem-molecule> via standalone script.github.com

