Deterministic discrete-event simulation of open-pit and underground mine haulage on constrained road networks, with seeded parametric mine generators
Project description
minehaulsim
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.
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 minehaulsim-0.10.0.tar.gz.
File metadata
- Download URL: minehaulsim-0.10.0.tar.gz
- Upload date:
- Size: 115.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
565ce39b0de690dea51acd5528831dde552ec164497283772fb3f8d849f23a2e
|
|
| MD5 |
fe055f6fe67dd3f4729aa08b231f195d
|
|
| BLAKE2b-256 |
e86bbf5785b89dc627152d2554f4468b6dc9e6ada524a003a2c4403a24dee92c
|
Provenance
The following attestation bundles were made for minehaulsim-0.10.0.tar.gz:
Publisher:
publish-pypi.yml on fsantibanezleal/CAOS_MINEHAUL
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
minehaulsim-0.10.0.tar.gz -
Subject digest:
565ce39b0de690dea51acd5528831dde552ec164497283772fb3f8d849f23a2e - Sigstore transparency entry: 2047446952
- Sigstore integration time:
-
Permalink:
fsantibanezleal/CAOS_MINEHAUL@c7300d0e06de8672c7764d5839a415b8cf95b920 -
Branch / Tag:
refs/tags/v0.10.000 - Owner: https://github.com/fsantibanezleal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@c7300d0e06de8672c7764d5839a415b8cf95b920 -
Trigger Event:
release
-
Statement type:
File details
Details for the file minehaulsim-0.10.0-py3-none-any.whl.
File metadata
- Download URL: minehaulsim-0.10.0-py3-none-any.whl
- Upload date:
- Size: 108.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 |
f3bcfd675d1f020ba71a0ac69dbdf625f43a1c4c3389a756806439910064b821
|
|
| MD5 |
fda6f3f7f6a00f6bf2c88caf50810e19
|
|
| BLAKE2b-256 |
3531c3263df094ac077f3568df3be60f3629a433b2e35e293c5d5a6006572efd
|
Provenance
The following attestation bundles were made for minehaulsim-0.10.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on fsantibanezleal/CAOS_MINEHAUL
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
minehaulsim-0.10.0-py3-none-any.whl -
Subject digest:
f3bcfd675d1f020ba71a0ac69dbdf625f43a1c4c3389a756806439910064b821 - Sigstore transparency entry: 2047446959
- Sigstore integration time:
-
Permalink:
fsantibanezleal/CAOS_MINEHAUL@c7300d0e06de8672c7764d5839a415b8cf95b920 -
Branch / Tag:
refs/tags/v0.10.000 - Owner: https://github.com/fsantibanezleal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@c7300d0e06de8672c7764d5839a415b8cf95b920 -
Trigger Event:
release
-
Statement type: