chemcheat

How this site works

Nothing on chemcheat is written molecule by molecule. Each page is produced by running the same procedure a chemistry course teaches, in code, at build time.

The procedure

  1. Parse the formula

    Split the formula into elements and counts, handling brackets and charges, then look up the group number of each element to get the valence electrons it contributes.

  2. Resolve the connectivity

    Which atom is bonded to which. A ladder of rules covers the usual cases: hydrogen is never central, carbon always is, the least electronegative atom takes the centre, acidic hydrogens sit on oxygen rather than on the central atom. A formula alone cannot always settle this - CH3OH and CH3-O-H are the same formula - so a small table of known skeletons covers the genuinely ambiguous cases. Each page says which rule was used.

  3. Enumerate every bond arrangement

    Once bond orders are fixed, the lone-pair placement is forced, not chosen: each atom takes whatever it needs to reach its target shell. So the only real search space is the bond orders, and it is small enough to check exhaustively. Every allowed combination is generated, with hydrogen and the halogens pinned to single bonds.

  4. Score the candidates

    Each structure is scored on how many atoms fall short of their octet, how much formal charge it carries, and whether negative charge sits on the electronegative atoms - the same criteria a marking scheme uses. Structures that tie at the top become the resonance set.

  5. Read off the geometry

    Count the electron domains on the central atom to get the steric number, and the electron geometry, molecular shape, bond angle and hybridization all follow from it.

  6. Test the polarity

    Build idealised 3D coordinates from the VSEPR geometry, give each bond a dipole vector sized by the electronegativity difference, add the lone-pair contributions, and sum. Symmetric molecules cancel to zero.

What the site does not do

It does not guess, and it does not write prose about molecules. If a page states a bond angle, that angle came out of the steric number. If it says a molecule is nonpolar, the vectors summed to zero. The connectivity table is the one place where chemical knowledge is stored rather than derived, and it is small and visible.

The engine is tested against textbook values for all 40 molecules currently on the site: valence electron counts, bond orders, lone pairs, formal charges, geometry, bond angles, hybridization and polarity. A structure that disagrees with the textbook fails the build.

Known limits