From XYZ Coordinates to a Metal Complex You Can Teach With
Paste the coordinates of a transition-metal complex and ChemIllusion proposes the bonding, the ligand charges, and the metal's oxidation state, with dative-bond SMILES you can copy. It is free, needs no account, and never sends your structure to an AI model. Built on the open-source xyz2mol_tm method from Jan Jensen's group.
The new Metal complex from XYZ tool in the Generator turns coordinate files into teachable bonding pictures:
- paste or upload an .xyz file and set the total charge;
- get the metal's proposed oxidation state, each ligand with its charge, and dative-bond SMILES you can copy;
- run free without an account, with deterministic chemistry (no AI on your coordinates).
Why metal complexes are difficult
Organic structures come with a bonding convention that every toolkit understands. Metal complexes do not. Is the Pt–Cl bond covalent or is chloride donating a lone pair to Pt2+? Is ammonia neutral and chloride negative, or the reverse? Does each cyclopentadienyl ring in ferrocene count as one ligand with one negative charge, or as five separate carbon contacts? A distance cutoff finds neighbors, but it cannot answer those questions.
The method behind this tool answers them by splitting the complex into its ligands, using an extended-Hückel calculation to decide how each ligand is charged and bonded, and then writing the result as a SMILES string in which the metal–ligand bonds are dative arrows. The oxidation state follows from the ligand charges and the overall charge of the complex.
Try it
Open chemillusion.com/generator?tool=tmc. The dialog has three ways in: a menu of fourteen common examples, an upload button for your own .xyz file, and a text box where you can paste coordinates. The total charge is required, because the geometry alone cannot tell the tool whether it is looking at [Fe(CN)6]4− or [Fe(CN)6]3−.

The menu lists fourteen common examples, including cisplatin, ferrocene, Fe(CO)5, Cr(CO)6, [Co(NH3)6]3+, and the two hexacyanoferrates. Two of them stand in for bigger molecules with the same coordination core: PH3 replaces PPh3 in the palladium and rhodium examples.
What you get back
Press Interpret metal coordination and the result panel shows:
- the metal and its proposed oxidation state, and the coordination number;
- each ligand as a SMILES string with its charge;
- the whole complex as dative-bond SMILES (a line notation for structure, with -> marking dative bonds to the metal), with a Copy SMILES button;
- an independent electron-count cross-check of the oxidation state, so you can see when two methods agree;
Two badges are always on the panel, because they are the honest summary: inferred bonding and geometry: as supplied. The bonding is a proposal. The coordinates are yours, and nothing is re-embedded or optimized.

You can then render the coordinates you supplied as a 3D model with Preview 3D, put that render on the canvas, copy the SMILES, or download the whole result as a JSON bundle. In a notebook, an .xyz attachment gets an Interpret metal coordination action that saves the bundle next to the file.
Three worked examples
Cisplatin, cis-[PtCl2(NH3)2]. Two chloride anions and two neutral ammonia ligands on a neutral complex means Pt(+2), with four dative bonds in a square plane.



Ferrocene, Fe(η5-C5H5)2. The Greek letter η (eta) counts how many atoms of a ligand bind to the metal; η5 means all five ring carbons. The tool reads each ring as one cyclopentadienyl anion, so the iron comes out as Fe(+2) with coordination number 10 (five contacts per ring). That number is correct for a distance count and misleading for a chemist who says “six-coordinate”, which is why the panel warns that a number above six means a haptic ligand set.

RhCl(PH3)3. A trimmed-down Wilkinson's catalyst. One chloride, three neutral phosphines, and a neutral complex give Rh(+1) with four-coordinate square planar geometry, which is exactly the starting point for the oxidative-addition step students meet in the catalytic cycle.
The library underneath
The chemistry in this tool is built from xyz2mol_tm, an open-source (MIT) package from Jan H. Jensen's group at the University of Copenhagen, described in:
Rasmussen, M. H.; Strandgaard, M.; Seumer, J.; Hemmingsen, L. K.; Frei, A.; Balcells, D.; Jensen, J. H. “SMILES all around: structure to SMILES conversion for transition metal complexes.” Journal of Cheminformatics 2025, 17, 63. doi:10.1186/s13321-025-01008-1
Across our fourteen common examples the result was identical on two RDKit versions. If you use this tool in teaching materials or a publication, please cite the paper above, and treat the oxidation state as a proposal that you confirm against the chemistry you know.
Ready to try it? Open Metal complex from XYZ in the Generator.