Demonstration · Port operationsSimulating live in your browser

Recover the waterfront.

A late ship, a crane fault or a jammed gate spreads through berths, cranes, tractors and the yard within hours. Watch the terminal work, break something, and let the optimiser search thousands of simulated futures for a better berth plan.

Vessel calls
12
Quay
920 m · 3 berths
Quay cranes
8
Tractors
30
Yard
6 blocks · 5,400 slots
Window
48 h
Scenario
Plan
D1 00:00
D1 00:00 D3 00:00

Click a quay crane to take it out of service. Click it again to repair it.Hover vessels, cranes and yard blocks for detail.

Every call, actual and forecast.

Bars left of the time cursor have happened in the simulation; bars to the right are its forecast for this run. A berth plan is a priority list per berth: when a berth frees up, it takes the highest-priority call that is actually waiting. Crane priority decides which call gets cranes first when there are not enough to go round.

Berth schedule · Original plan48 h window · ticks mark each call's berth window
At anchor Alongside B1 Alongside B2 Alongside B3 Berth window closes Crane priority
Delay cost, cumulativesame random day, three plans
Yard fillshare of 5,400 slots
Quay productivitycontainer moves per hour

Search the plan space by simulation.

The optimiser changes one thing at a time: it moves a call to another berth or priority slot, swaps two calls, or gives a call crane priority. Every candidate is run through the full terminal simulation on eight random futures, so a plan only wins if it holds up when arrival times, crane cycles and gate traffic vary. The winner is then checked on sixteen futures it never saw.

Expected delay cost of each candidate plan
CandidateBest plan so far
Starting…
Checked on 16 unseen futuresmean per run
PlanAt anchorLateCostChange
Accepted changes

    What runs underneath.

    Discrete-event simulation

    Every vessel, quay crane, tractor, yard crane and gate transaction is an entity in an event queue. A full 48-hour terminal day is roughly 30,000 events and takes about 20 ms to simulate, which is what makes simulation-based optimisation practical.

    Quay, apron and yard

    Cranes share one rail and cannot pass each other, so they are split into contiguous groups. Each move needs a tractor, which drives the real lane network to a yard block. Yard cranes slow down as blocks pass 70% fill, because boxes have to be dug out.

    Objective

    cost = 1,800 €/h × waiting + 4,500 €/h × lateness

    Waiting is time at anchor; lateness is time past the berth window. Windows come from simulating the original plan once under planned arrival times. The weights are indicative, not a terminal's tariff.

    Optimiser

    Randomised first-improvement local search with racing: a candidate is first run on four futures and only gets the other four if it is ahead. A change is kept if it lowers expected cost by at least 1%. Runs split across your processor's cores.

    What this model leaves out

    The terminal, vessels and volumes are invented. There are no tide windows, labour shifts, crane-to-crane interference within a bay, reefer or hazardous cargo rules, or individual container stowage. Tractors do not block each other on the lanes. A real deployment would be calibrated against the terminal operating system's history before anyone trusted its numbers.

    Model your terminal.

    We build simulation and recovery models around your berths, equipment and service commitments, calibrated on your own operating data.

    Discuss your project