MatMelt
Melt elements into crystals — automated structure generation, screening, and calculation, from your laptop to remote compute.
You write one YAML file saying what to explore and where each stage runs, then run one command. State is durable — interrupt a run at any point and running it again picks up where it stopped. No server, no database to install, nothing on anyone else's machines.
compose → structure → screen → [calculate] → extract
SMACT PyXtal MACE/ASE DFTB+, optional record.json
| Stage | What it produces | Science it uses |
|---|---|---|
compose |
charge-balanced compositions from your element set | SMACT |
structure |
candidate crystals — 3D / 2D / 1D symmetry families | PyXtal |
screen |
ML relaxation and a convergence/sanity verdict | MACE |
calculate (optional) |
DFTB+ energies with self-healing retries | your own AiiDA |
extract |
one OPTIMADE-shaped record.json per material |
— |
Install
pip install matmelt
Not on PyPI until the
v0.2.0tag. Until then:pip install git+https://github.com/Quantum-ARISE-Acad/qa-materials-cli.git
The base install is deliberately light — it never pulls in torch or a science stack.
Use it
matmelt init # scaffold matmelt.yaml + check the environment
$EDITOR matmelt.yaml # your elements, your machines
matmelt doctor # deps present? machines reachable? fixes named
matmelt run # seed and drain the funnel (Ctrl-C is safe)
matmelt results --export db.json # your records, one JSON array
matmelt --help lists the rest (status, monitor, retry, cif, update), and
matmelt <command> --help documents every flag. Exit codes: 0 success ·
1 problems found · 2 config error.
The config
run:
name: my-first-run
work_dir: ./materials-work
elements: [Na, Cl, O] # what to explore
backends: # the WHERE — machines that run jobs
laptop:
kind: local
options: { max_parallel: 2 }
gpu_box:
kind: ssh_exec
options: { host: you@gpu-box.lan, max_parallel: 4 }
stages: # the WHAT — each stage picks a backend
compose: { backend: laptop }
structure: { backend: laptop }
screen: { backend: gpu_box }
extract: { backend: laptop }
Moving a heavy stage to a bigger machine is that one line, never code. Any value may be an
environment reference (env:NAME), so secrets never live in the file.
The science stack is yours
MatMelt does not bundle SMACT, PyXtal, MACE/torch, ASE, AiiDA or any ML model, and never
installs them behind your back. doctor and every run report what is missing and on which
machine, naming the exact fix, before any calculation starts.
pip install matmelt[compute] is a convenience alias for smact + pyxtal +
mace-torch — an alias, never a requirement.
MIT licensed — see LICENSE.
Metadata
Release files for matmelt 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| matmelt-0.2.0.tar.gz | 16.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| matmelt-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 MB
Release files / matmelt-0.2.0.tar.gz
| Download URL | matmelt-0.2.0.tar.gz |
|---|---|
| Size | 16.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a7e82a84fd81b2f8df3eee1b33ed34e78e09678995b2705b1b598ab741490619
|
|
BLAKE2b-256 checksum How to use checksums |
88c0618ff7fa0fec96286ac44a616436807f04b1f802971b369848deee6760c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency logRelease files / matmelt-0.2.0-py3-none-any.whl
| Download URL | matmelt-0.2.0-py3-none-any.whl |
|---|---|
| Size | 218.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eed8c862b8425d000993a07cf64986aec89ca903cffdcc4a8d01d8a27f501c69
|
|
BLAKE2b-256 checksum How to use checksums |
921b8cb5bae8cb232c0266d82449fe179ccb24a36b0d1e7654f1cc8ecbae19f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency log