Unified MIDAS HEDM orchestrator. FF is the single-scan degeneracy of PF; one orchestrator, --scan-mode {ff,pf}.
Project description
midas-pipeline
End-to-end MIDAS HEDM orchestrator. FF is the single-scan degeneracy of PF. One package, one CLI, two scan modes.
Status
0.1.0 — end-to-end PF and FF paths live. The scanning indexer matches the C IndexerScanningOMP reference on its 1-voxel C-parity gate (seed identity, solution counts, voxel-center positions exact; orientation matrices within mrad-scale, the refiner closes the gap downstream). Real-data validation: Wenxi CP-Ti consolidation_pf reproduces the legacy pf_MIDAS.py grain count (770 == 770, all common). Park22 P5c parity gate now runs in ~6.7s vs the original 790s after the scanning-indexer position-grid fix.
Stages call in-process Python kernels via midas-index / midas-fit-grain / midas-transforms / midas-stress. FF mode shells out to python -m midas_index and python -m midas_fit_grain (same kernels, subprocess for the FF parity-preserving pattern). No CUDA C; GPU is torch-only.
Install
pip install -e packages/midas_pipeline
CLI
midas-pipeline run --scan-mode {ff,pf,auto} --params Parameters.txt --result rundir/
midas-pipeline status rundir/
midas-pipeline resume rundir/ --from <stage>
midas-pipeline reprocess rundir/
midas-pipeline inspect rundir/LayerNr_1/
midas-pipeline simulate --out simdir/ --params Parameters.txt
midas-pipeline seed --params ... --output UniqueOrientations.csv
When --scan-mode is omitted (default auto), the CLI sniffs the parameter file: nScans > 1 or presence of BeamSize / scanning keys → pf, otherwise ff. For PF mode, --n-scans, --scan-step, --beam-size, and --scan-pos-tol default to values in the params file (CLI flags override).
Indexer backend
midas-pipeline run --indexer-backend {python,c-omp} ...
python (default) — in-process numba/torch indexer. Portable (CPU/CUDA/MPS), differentiable, slower on large PF datasets.
c-omp — bundled unified C binary (midas_indexer) from midas-index. Requires midas-index installed with a working OpenMP toolchain (macOS: brew install libomp). ~290× faster than the Python path on real PF datasets (per the Wenxi CP-Ti benchmark in packages/midas_index/dev/). Output is bit-identical to the Python path on the PF parity gate.
Coexistence with midas-ff-pipeline
The legacy midas-ff-pipeline console-script is preserved as an independent FF orchestrator (its own kernels, its own CLI). It is not deprecated by midas-pipeline run --scan-mode ff — both paths invoke the same midas-index / midas-fit-grain kernels under the hood, and both stay green on the FF parity gate. Pick whichever is more convenient for your workflow.
Architecture
- One orchestrator with a mode-dependent
STAGE_ORDER. - Shared kernel packages (
midas-index,midas-fit-grain,midas-transforms, etc.) extended in place; FF behavior preserved by parity gates. - PF-only modules live inside
midas_pipeline(find_grains/,sinogen,recon/,fuse,potts,em_refine,seeding/). - Differentiability + multi-device mandatory on every new compute path (CPU / CUDA / MPS via torch).
Constraints
- No CUDA C; GPU support is torch-only.
- No deletions of legacy code in this effort.
midas-process-grainsis FF-only; PF consolidation is fresh pure-Python.utils/calcMiso.pyis not imported by this package; all orientation math comes frommidas-stress.TOMO/midas_tomo_python.pyis imported in place, not relocated.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midas_pipeline-0.2.1.tar.gz.
File metadata
- Download URL: midas_pipeline-0.2.1.tar.gz
- Upload date:
- Size: 129.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67420844d65284e87ef6a7b2cece65302324e2c02f431d788cb7d153aae70152
|
|
| MD5 |
af7fea19287fdcf18bed23064b27686d
|
|
| BLAKE2b-256 |
c76b2f4d7f6a81755bbab5e1621e25cf0ab5d2ebb51450c344287de3e5675b62
|
Provenance
The following attestation bundles were made for midas_pipeline-0.2.1.tar.gz:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_pipeline-0.2.1.tar.gz -
Subject digest:
67420844d65284e87ef6a7b2cece65302324e2c02f431d788cb7d153aae70152 - Sigstore transparency entry: 1575646596
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@d9a65239eb51d8a0b12e580bbbd66fe2dde42e27 -
Branch / Tag:
refs/tags/midas-pipeline-v0.2.1 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@d9a65239eb51d8a0b12e580bbbd66fe2dde42e27 -
Trigger Event:
release
-
Statement type:
File details
Details for the file midas_pipeline-0.2.1-py3-none-any.whl.
File metadata
- Download URL: midas_pipeline-0.2.1-py3-none-any.whl
- Upload date:
- Size: 160.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4235c5c41d7bd6064928185a1d2ebdf9ed54e3ad66878ccc9c8fba517b458d6c
|
|
| MD5 |
9b54061bafdfcdeb03166529b9ca5bcf
|
|
| BLAKE2b-256 |
65f6bd3edda68819058b598dcebd8d9b3d9d08d4aea69128e1aaf6e1424a018b
|
Provenance
The following attestation bundles were made for midas_pipeline-0.2.1-py3-none-any.whl:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_pipeline-0.2.1-py3-none-any.whl -
Subject digest:
4235c5c41d7bd6064928185a1d2ebdf9ed54e3ad66878ccc9c8fba517b458d6c - Sigstore transparency entry: 1575646627
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@d9a65239eb51d8a0b12e580bbbd66fe2dde42e27 -
Branch / Tag:
refs/tags/midas-pipeline-v0.2.1 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@d9a65239eb51d8a0b12e580bbbd66fe2dde42e27 -
Trigger Event:
release
-
Statement type: