Skip to main content

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

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

minehaulsim-0.10.0.tar.gz (115.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.10.0-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

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

Hashes for minehaulsim-0.10.0.tar.gz
Algorithm Hash digest
SHA256 565ce39b0de690dea51acd5528831dde552ec164497283772fb3f8d849f23a2e
MD5 fe055f6fe67dd3f4729aa08b231f195d
BLAKE2b-256 e86bbf5785b89dc627152d2554f4468b6dc9e6ada524a003a2c4403a24dee92c

See more details on using hashes here.

Provenance

The following attestation bundles were made for minehaulsim-0.10.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.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

Hashes for minehaulsim-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3bcfd675d1f020ba71a0ac69dbdf625f43a1c4c3389a756806439910064b821
MD5 fda6f3f7f6a00f6bf2c88caf50810e19
BLAKE2b-256 3531c3263df094ac077f3568df3be60f3629a433b2e35e293c5d5a6006572efd

See more details on using hashes here.

Provenance

The following attestation bundles were made for minehaulsim-0.10.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 Pingdom Monitoring Sentry Error logging StatusPage Status page