pyxtal
Python code for generation of crystal structures based on symmetry constraints.
Decision gist · record as of 2026-08-14
Yes. PyXtal is actively maintained, has no security vulnerabilities, uses a permissive MIT license, and sits in the top tier by download volume. Install friction is low. It is the right choice if you need to generate or manipulate crystal structures under symmetry constraints; if you only need to read/write existing structures, other tools may suffice.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Optional Julia integration (pyxtal.lego) requires INSTALL_JULIA=1 environment variable at install time.
- Low friction: pure Python wheel with no compiled dependencies.
License · maintenance · safety
MIT (permissive) — MIT license (permissive): you may use, modify, and distribute PyXtal freely in commercial and private projects, with minimal restrictions beyond attribution.
last release 2026-05-26 (80 days) · last repo commit 2026-08-09 · 384 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 569,401 downloads/mo, #5,962 on PyPI
Alternatives
Verify before relying
pip install pyxtal
from pyxtal import Crystal
# Generate a crystal with specified space group and stoichiometry
crystal = Crystal.from_random(3, 'Pm-3m', ['Na', 'Cl'], [1, 1])
print(crystal)- Whether the optional Julia integration (pyxtal.lego module) is required for typical workflows or only for specialized use cases.
- Performance characteristics when generating large structures or working with high-dimensional symmetry spaces.
- Whether all exported formats (cif, etc.) round-trip correctly through pymatgen and ASE integration.
What it is and what it does
PyXtal is a Python library for designing crystal structures under symmetry constraints and analyzing their properties. It lets you generate atomic and molecular crystals by specifying symmetry group, stoichiometry, and Wyckoff positions, then export them to standard formats (cif, etc.) or pass them to external tools. The package handles structure manipulation via subgroup/supergroup symmetry relations, includes built-in and external geometry optimization, and provides X-ray diffraction analysis.
The library sits on top of established materials-science dependencies: spglib for symmetry operations, pymatgen and ASE for structure I/O and manipulation, scipy and networkx for numerical and graph operations. It is actively maintained, has no compiled dependencies in the base install, and is widely used in materials discovery workflows—particularly for high-throughput screening and ferroelectric materials design.
Use it for
- Generate candidate crystal structures for a given space group and composition to seed high-throughput computational screening.
- Analyze and manipulate crystal symmetry relationships (subgroup/supergroup transitions) for phase-transition studies.
- Export structures in multiple formats (cif, POSCAR, etc.) for downstream simulation with external codes.
- Compute X-ray diffraction patterns for experimental validation or structure identification.
- Design molecular crystal packings with specified Wyckoff positions for organic materials research.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
PyXtal is actively maintained, has no security vulnerabilities, uses a permissive MIT license, and sits in the top tier by download volume. Install friction is low. It is the right choice if you need to generate or manipulate crystal structures under symmetry constraints; if you only need to read/write existing structures, other tools may suffice.
Install
pyxtal on PyPI
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance—last commit 80 days ago with 384 GitHub stars. Requires Python 3.9+. Runtime depends on established scientific libraries (pymatgen, scipy, networkx, ase, spglib).
Requires Python 3.9 or later. Optional Julia integration (pyxtal.lego) requires INSTALL_JULIA=1 environment variable at install time.
License in practice
MIT license (permissive): you may use, modify, and distribute PyXtal freely in commercial and private projects, with minimal restrictions beyond attribution.
Quickstart
pip install pyxtal
from pyxtal import Crystal
# Generate a crystal with specified space group and stoichiometry
crystal = Crystal.from_random(3, 'Pm-3m', ['Na', 'Cl'], [1, 1])
print(crystal)
Verify before relying
- Whether the optional Julia integration (pyxtal.lego module) is required for typical workflows or only for specialized use cases.
- Performance characteristics when generating large structures or working with high-dimensional symmetry spaces.
- Whether all exported formats (cif, etc.) round-trip correctly through pymatgen and ASE integration.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 11 packagesspglibpymatgenpandasnetworkxasescipyvasprun-xmlimportlib_metadatatyping-extensionspyocsepsutil |
| Maintenance | Actively maintained 80 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 569,401 / month, #5,962 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: pyxtal-1.1.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “crystal structure generation symmetry”
- pyxtalPyXtal generates crystal structures with specified symmetry…
- seekpathSeeK-path generates optimal k-point band paths in the Brillouin zone…
- spglibspglib provides Python bindings to a C library for identifying and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also symfc · moyopy · spglib · seekpath · pyocse · pymatgen-core · periodictable · ase · xraydb · chgnet