Skip to main content

minehaulsim

CI License Version

Deterministic discrete-event simulation of open-pit and underground mine haulage on constrained road networks, with seeded parametric mine generators.

No open-source package simulates mine haulage on a real constrained road network: existing OSS simulators use one fixed mine layout, scalar distance matrices, no grades/rimpull and no traffic constraints — and the tools that do this right (HAULSIM, TALPAC-3D, SimMine) are commercial and closed. minehaulsim fills that gap:

  • Constrained road network, first-class. Haul routes are a directed multigraph: one-way ramps, width/passing classes, junction blocking, direction zones (single-lane drifts with passing bays), speed-by-grade from rimpull/retarder curves — travel times come from the network, not scalars.
  • Genuinely varied mines. Seeded parametric generators for open pits (benches, phases, spiral/switchback ramps, multiple faces/dumps) and underground multi-level mines (levels, declines, shafts, ore passes, drifts) — a different, valid mine per seed, never one shape reused.
  • Deterministic DES core. Hand-rolled event engine (no simpy); a run is a pure function of (spec, policy, seed) — byte-identical outputs across OS/sessions. Dispatch-policy hook with baseline policies included.
  • Interoperable outputs. cyclelog/v1 CSV event logs (load/haul/dump/return), provenance JSON, a per-truck position trace, and topography exports for 3D viewers.
  • numpy-only core. Visualization is an opt-in extra; the core never imports matplotlib.

Scenario variety — the gallery

Twelve scenarios from one generate_batch(12, seed=2026) call, every one passing the seven validity gates with a unique structural signature (full set + per-pit summaries in gallery/; regenerate with python scripts/gen_gallery.py):

gallery contact sheet

Status

0.10.000 — the first published release: equipment + rimpull kinematics, constrained routing, deterministic DES with per-segment traffic (emergent bunching), the full haul cycle with five dispatch policies, a mine-planning layer (phases, depletion, slope damage, speed zones), underground multi-level mines with LHD/ore-pass inventory coupling and three flow modes, opt-in failure processes with a CI-enforced performance floor, the DispatchLab IO contracts, the varied generators, the viz extra and the CLI. Per-unit history in CHANGELOG.md.

Docs: the navigable wiki starts at docs/README.md — read docs/what-it-is-and-isnt.md before trusting any number.

Install

pip install minehaulsim            # numpy-only core
pip install "minehaulsim[viz]"     # + matplotlib renders

# development
pip install -e ".[dev]"
pytest

CLI

minehaulsim generate --seed 42 --out out/     # validated spec JSON (+ plan SVG with [viz])
minehaulsim batch --n 10 --seed 2026 --out samples/
minehaulsim run --spec out/openpit-42.minespec.json --policy minqueue --out out/
minehaulsim render --spec out/openpit-42.minespec.json --out out/
minehaulsim validate out/mhs-openpit-42-minqueue.csv
minehaulsim demo

Honesty

This is a simulation package: equipment curves are class-representative (not OEM data), generated mines are synthetic (structure-real at best, and always labelled), and nothing here predicts a real operation without calibration. The docs carry a dedicated what-it-is-and-isn't section.

License

Apache-2.0.

Download files

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

Source Distribution

minehaulsim-0.12.0.tar.gz (120.1 kB view details)

Uploaded Source

Built Distribution

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

minehaulsim-0.12.0-py3-none-any.whl (112.7 kB view details)

Uploaded Python 3

File details

Details for the file minehaulsim-0.12.0.tar.gz.

File metadata

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

File hashes

Hashes for minehaulsim-0.12.0.tar.gz
Algorithm Hash digest
SHA256 210daf7859ec0c8908453ea67b2eaea72338284fcd9e6a239802a06835328534
MD5 e02695598af85a3c118e6fd963effd24
BLAKE2b-256 932354a0fa4d17c860d15f13cef1cc6bc7d61c73c5601a1e188e82ea52624937

See more details on using hashes here.

Provenance

The following attestation bundles were made for minehaulsim-0.12.0.tar.gz:

Publisher: publish-pypi.yml on fsantibanezleal/CAOS_MINEHAUL

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

File details

Details for the file minehaulsim-0.12.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for minehaulsim-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f14f1c991a1cb60a8ce8e62c7e28a45eda9dda427c07d56c2ccb56a5e1c7cb8a
MD5 a0627bc033e895e89b0b43122cec010f
BLAKE2b-256 a8a14dc034168b90326fe3ca353739dac02145a3d4d9b0300e0e576d421669f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for minehaulsim-0.12.0-py3-none-any.whl:

Publisher: publish-pypi.yml on fsantibanezleal/CAOS_MINEHAUL

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 Sentry Error logging StatusPage Status page