minehaulsim
Software note (CC-BY-4.0): "minehaulsim: A Deterministic Discrete-Event Simulator of Mine Haulage on a
Constrained Road Network", concept DOI 10.5281/zenodo.21512291
(source in manuscripts/haulage-des/). It gives the constrained-network model, the
speed-by-grade kinematics, and a deterministic demonstration (throughput saturation, emergent congestion, and a
dispatch-policy gap) on a generated pit.
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/v1CSV 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):
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.
Release files for minehaulsim 0.12.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| minehaulsim-0.12.1.tar.gz | 120.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| minehaulsim-0.12.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 233.1 kB
Release files / minehaulsim-0.12.1.tar.gz
| Download URL | minehaulsim-0.12.1.tar.gz |
|---|---|
| Size | 120.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f82db09f1c075d06cb8a5289f05a3f5ba15c23eef7ca9a7be24858445479c1f0
|
|
BLAKE2b-256 checksum How to use checksums |
a29a2604a379b9b95a35ce4932ece21a57a611e6104a813df42b2c6168d2964a
|
| 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 Sep 26, 2026.
Transparency logRelease files / minehaulsim-0.12.1-py3-none-any.whl
| Download URL | minehaulsim-0.12.1-py3-none-any.whl |
|---|---|
| Size | 112.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc8ea950106cbb0ffecdc3b7122f01ca9e1ed65c7c5fc2784eb18312a2fe18eb
|
|
BLAKE2b-256 checksum How to use checksums |
a03ec6c3ae141177db37676d307103ca4e2babb610b09f3ea3767d0266ca387c
|
| 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 Sep 26, 2026.
Transparency log