Skip to content

About

Where this project came from

pyrrhotite started as a Python translation of the C++ library schoenflies by Luuk Kempen, which detects symmetry operations from an .xyz file and visualizes them on the molecule.

The two projects have since diverged:

Feature schoenflies (C++) pyrrhotite
Point group determination from .xyz
Character tables ✅ — generated for any of the 18 Schoenflies classes (axial families to arbitrary order), with or without an .xyz file, and exportable to HTML / LaTeX
Idealized structure generation ✅ — build a molecule that has a requested axial symmetry, for testing or demonstration
3-D visualizer ✅ — overlays the detected symmetry operations (axes, planes) on the molecule ✅ — molecule, axis gizmo, and optional element labels (no operation overlays yet)
Sample molecule library ✅ — 32 bundled .xyz files with one-line helpers

In short: reach for the original C++ tool if you need to see the symmetry operations drawn on a molecule. Reach for pyrrhotite if you need character tables — on demand for any point group, with or without a structure — or any of the other features above.


Citing this work

If pyrrhotite is useful in your research or coursework

There isn't a dedicated paper for pyrrhotite itself yet — please cite the original schoenflies project and the symmetry-adapted wavefunction reference below, and link back to the GitHub repository.


License

pyrrhotite is released under the GNU General Public License v3.0 — see LICENSE for details.


References


Contributing & development

Running the test suite:

pip install 'pyrrhotite[dev]'
python -m pytest tests/ -v

Keep an eye on the changelog

pyrrhotite is under active development. See the project's CHANGELOG for a history of recent changes — useful context if something here doesn't quite match the installed version.


Contact

Questions, bug reports, and feature requests are all welcome:

  • GitHub Issues


    Found a bug, or detection giving an unexpected point group? Open an issue with the .xyz file (or a minimal reproduction) on the issue tracker.

  • Source code


    Browse the code, open a pull request, or fork the project on GitHub.

  • Email


    For anything that doesn't fit a public issue, reach the maintainer at tdadikozyan04@gmail.com.