Skip to main content

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

Alpha (0.1.0a0) — 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). Cross-implementation perf optimization (~130s/voxel single-threaded today) is open work — see project_midas_index_scanning_perf tracking.

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).

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

See ../../.claude/plans/for-pf-we-don-t-lovely-locket.md for the long-form plan. Quick summary:

  • 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-grains is FF-only; PF consolidation is fresh pure-Python.
  • utils/calcMiso.py is not imported by this package; all orientation math comes from midas-stress.
  • TOMO/midas_tomo_python.py is imported in place, not relocated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

midas_pipeline-0.1.0.tar.gz (101.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

midas_pipeline-0.1.0-py3-none-any.whl (127.6 kB view details)

Uploaded Python 3

File details

Details for the file midas_pipeline-0.1.0.tar.gz.

File metadata

  • Download URL: midas_pipeline-0.1.0.tar.gz
  • Upload date:
  • Size: 101.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for midas_pipeline-0.1.0.tar.gz
Algorithm Hash digest
SHA256 67d5596b5af9f763c347eae94f3d6174604601c6338fb9755894108aeae037d2
MD5 27672268bc9f2ae9bcae5717a69e0f36
BLAKE2b-256 6124c335cda96a1d92b6a7e452f847b8bf0246be469db0fe1ef03baa44de9af7

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_pipeline-0.1.0.tar.gz:

Publisher: python-packages.yml on marinerhemant/MIDAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file midas_pipeline-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: midas_pipeline-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 127.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for midas_pipeline-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ae80e90f232d03dcacd1aade04952617f45fd14f45c9a41bbdd85ecee1e69ab
MD5 0816e3fb81230a77871a69e954ec61fe
BLAKE2b-256 9d80c9b8e3aea62a89a87b8fb7c9fe44bf8e78bede64605581e3ca30af44a9b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_pipeline-0.1.0-py3-none-any.whl:

Publisher: python-packages.yml on marinerhemant/MIDAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page