2026-05-19__001_synthetic_mine_throughput__antigravity__gemini-3-5-flash__normal-thinking

Date: 2026-05-19 · Benchmark: 001_synthetic_mine_throughput · Harness: antigravity · Model: gemini-3-5-flash (normal-thinking) · ? Unrecorded

Scores

Category Points Max
Conceptual modelling 18 20
Data and topology 14 15
Simulation correctness 18 20
Experimental design 13 15
Results & interpretation 13 15
Code quality 7 10
Traceability 5 5
Total 88 100

Run metrics

Evaluation report

Scenario Mean throughput
baseline 12,503.33
trucks_4 7,623.33
trucks_12 12,896.67
ramp_upgrade 12,556.67
crusher_slowdown 6,530
ramp_closed 12,393.33
trucks_12_ramp_upgrade 12,876.67

Source files

Downloads

Conceptual model

Conceptual Model Design — Synthetic Mine Throughput Simulation

This document outlines the conceptual design of our discrete-event simulation (DES) model of the synthetic mine haulage network, built using Python and SimPy.


1. System Boundary

Included in the Model

Excluded from the Model


2. Active Entities


3. Constrained Resources

  1. Loaders (L_N at node LOAD_N, L_S at node LOAD_S):
    • Capacity = 1.
    • Serve one truck at a time.
    • Manage queues in first-in-first-out (FIFO) order.
  2. Primary Crusher (D_CRUSH at node CRUSH):
    • Capacity = 1.
    • Dumps one truck at a time.
    • Manages queue in FIFO order.
  3. Single-Lane Roads & Ramps (edges with capacity = 1):
    • Capacity = 1.
    • Only one truck can traverse the directed segment at any time.
    • Waiting trucks queue at the upstream junction node before entering.

4. Chronological Events

For each truck cycle, the following events occur in chronological order:

  1. Truck Dispatched: Truck is assigned to a loader face $L \in {\text{LOAD_N}, \text{LOAD_S}}$.
  2. Travel Empty: Truck moves along the shortest-time path from its current position (PARK or CRUSH) to $L$.
  3. Edge Queue Start (conditional): Arrives at a capacity-1 edge along the path and must wait if occupied.
  4. Edge Enter / Leave (conditional): Enters the capacity-1 edge, traverses it, and releases the edge.
  5. Loader Queue Start: Arrives at loader node $L$ and joins the loader queue.
  6. Loading Start: Reaches front of queue and loader begins service.
  7. Loading End: Loading service completes; truck payload is set to 100 tonnes.
  8. Travel Loaded: Truck travels along the shortest-time path from $L$ to CRUSH.
  9. Crusher Queue Start: Arrives at the primary crusher junction and joins the dump queue.
  10. Dumping Start: Reaches front of queue and crusher hopper begins receiving ore.
  11. Dumping End: Dumping service completes; truck payload is reset to 0, total throughput is incremented, and a haul cycle is recorded.

5. State Variables


6. Modeling Assumptions

Assumptions Derived From Data

Assumptions We Introduced

Model Limitations


7. Performance Measures

  1. Total Tonnes Delivered ($T_{\text{tot}}$): Cumulative tonnes received at the crusher.
  2. Tonnes per Hour ($TPH$): $T_{\text{tot}} / 8.0$.
  3. Average Truck Cycle Time ($\bar{C}$): Average minutes to complete a full haul cycle (from dispatch to dump completion).
  4. Average Truck Utilisation ($\bar{U}{\text{truck}}$): Fraction of shift spent in productive work: $$U{\text{truck}} = \frac{T_{\text{TRAVEL_EMPTY}} + T_{\text{TRAVEL_LOADED}} + T_{\text{LOADING}} + T_{\text{DUMPING}}}{480.0}$$
  5. Resource Utilisation ($U_{\text{res}}$): Total active busy time divided by shift length (480 min).
  6. Average Queue Time ($\bar{W}_{\text{res}}$): Average wait time of all trucks that queued at resource res.
  7. Composite Bottleneck Rank: Ranked score for each resource evaluated as: $$\text{Bottleneck Score} = \text{Utilisation} \times \text{Mean Queue Wait}$$

README

Synthetic Mine Throughput Simulation — 8-Hour Shift Haulage Analysis

This project implements a high-fidelity, discrete-event simulation (DES) using SimPy to model and analyze a synthetic mine’s haulage network. The simulation estimates ore throughput to the primary crusher over an 8-hour shift, evaluates system bottlenecks, and conducts sensitivity analyses across 7 operational scenarios using 30 randomized replications each.


📸 Spatial Layout & Simulation Traffic Flow

Static Mine Topology

The mine’s physical road network consists of directed edges connecting the starting parking area (PARK), loader faces (LOAD_N in North Pit and LOAD_S in South Pit), junctions, and the primary crusher (CRUSH). The single-lane main ramp (E03_UP and E03_DOWN) is capacity-constrained (capacity = 1).

Mine Topology Map

Dynamic Traffic Flow Animation (First 45 Minutes of Shift)

The animation below shows empty trucks (blue) and loaded trucks (red) traveling, queueing, and servicing at the loaders and crusher. It visually verifies queueing behavior, single-lane ramp contention, and empty/loaded routing paths.

Mine Traffic Flow Animation


🚀 Getting Started

1. Installation

This simulation requires Python 3.8+ and uses standard scientific and network analysis libraries. You can install all dependencies via pip:

pip install simpy numpy pandas scipy matplotlib networkx pyyaml

2. Running the Simulation

To run all 7 scenarios across 30 replications and generate the outputs, execute the following command from the workspace root:

PYTHONPATH=src python3 -m mine_sim

This will run the entire suite of 210 simulation runs and output:

3. Model Correctness Validation

To verify that the simulation outputs strictly adhere to physical constraints (e.g., no simultaneous occupancy of capacity-1 single-lane road segments, hard 480-minute shift cutoff, and mathematical consistency in throughput accounting), run:

PYTHONPATH=src python3 -m mine_sim --validate

📊 Core Scenario Results

The simulation conducted 30 independent replications for each scenario using randomized seed control (seed = base_random_seed + replication_index) to ensure statistical validity. 95% confidence intervals (CI) were calculated using a Student-t distribution with 29 degrees of freedom ($df = N - 1$).

Summary Table

Scenario IDFleet SizeKey Operational ChangeTotal Tonnes Mean95% Confidence IntervalTonnes per Hour (TPH)Avg Cycle Time (min)Truck Util.Crusher Util.North Pit Loader Util.South Pit Loader Util.
baseline8Standard configuration12,503.33[12,416.46, 12,590.21]1,562.9229.7677.61%91.55%60.45%80.43%
trucks_44Low fleet size sensitivity7,623.33[7,594.44, 7,652.23]952.9224.4992.82%56.29%32.16%51.26%
trucks_1212High fleet size sensitivity12,896.67[12,810.35, 12,982.98]1,612.0842.6754.84%94.15%64.28%85.02%
ramp_upgrade8Main narrow ramp upgrade12,556.67[12,488.25, 12,625.09]1,569.5829.6677.65%91.85%61.05%80.97%
crusher_slowdown8Slower crusher service6,530.00[6,455.22, 6,604.78]816.2555.2948.95%95.51%33.60%44.09%
ramp_closed8Main ramp closed, detour12,393.33[12,341.51, 12,445.16]1,549.1730.0477.07%90.24%66.04%75.25%
trucks_12_ramp_upgrade12Fleet + Ramp Combo12,876.67[12,790.24, 12,963.10]1,609.5842.7254.67%94.70%64.67%85.12%

🎯 Answers to Operational Decision Questions

1. Expected Baseline Throughput

2. Likely Bottlenecks in the Haulage System

3. Impact of Fleet Size: Adding More Trucks vs. Saturation

4. Narrow Ramp Upgrade Operational Impact

5. Sensitivity of Throughput to Crusher Service Time

6. Operational Impact of Losing the Main Ramp Route


🧠 Conceptual Model Design

The conceptual design of our model is thoroughly documented in conceptual_model.md. Key pillars include:

1. System Boundary

2. Modeling Assumptions

3. Routing & Dispatching Heuristic

To maximize haulage efficiency, trucks do not have a fixed loader assignment. Instead, empty trucks are dynamically dispatched at the start of empty travel using a multi-factor score that minimizes expected completion time (travel empty time + queue delay at loader + loader service time): $$\text{Score}(L) = T_{\text{travel_empty}}(\text{current}, L) + \left( Q(L) \times \mu_{\text{load}, L} \right) + \mu_{\text{load}, L}$$ where:

The truck is assigned to the loader $L \in {\text{LOAD_N}, \text{LOAD_S}}$ that achieves the minimum score.


🛠️ Model Limitations & Future Work

  1. No Overtaking on Multi-Lane Roads: The model assumes that on capacity-999 roads, trucks travel at free-flow speeds (subject only to lognormal noise) regardless of local traffic density. An extension could introduce a density-dependent speed-flow relationship.
  2. Infinite Crusher Hopper Capacity: It is assumed that the primary crusher hopper has infinite stockpile capacity and never overflows or stops downstream processing. Incorporating a dynamic hopper level constraint would capture plant-matching constraints.
  3. No Breakdowns or Refueling: Equipment mechanical failures and diesel refueling are omitted. Integrating mean time between failures (MTBF) and mean time to repair (MTTR) would provide a more conservative, realistic long-term throughput estimate.

← Back to leaderboard