Escalator Crowd Flow

Random arrivals meet a fixed step clock: capacity, queue and wait.

Switch to 2D

Presets

Playback

Boarding policy

How people choose a lane.

Arrivals

Escalator

Changing the step speed or the gap changes the capacity at once.

People

Only used in the walk-left policy.

Actions

Camera

Quality

Layers

Model checks

The science

Why an escalator is a bottleneck at the bottom

Steps pass the comb plate at the foot every tau = d / v seconds (pitch d along the slope, speed v). A person can only step on when a free step arrives, so each lane is a server with a fixed slot clock. If every rider leaves g empty steps behind, a lane serves at most mu = v / (d (g + 1)) people per second, and m lanes serve m mu. With the defaults (0.5 m/s, 0.4 m, one empty step, two lanes) that is 2 x 0.5 / (0.4 x 2) = 1.25 people per second, 75 per minute. The escalator can carry far more people than the foot lets in, which is why filling every step (g = 0) doubles the throughput.

The queue

People arrive as a Poisson stream of rate lambda (random, memoryless). Each lane then behaves like an M/D/1 queue: random arrivals, deterministic service. Its utilisation is rho = lambda_lane / mu. The Pollaczek-Khinchine formula gives the mean wait Wq = s rho / (2 (1 - rho)) with service time s = (g + 1) tau; the slot clock adds on average another half step interval, so the page compares with Wq + tau / 2. The wait grows without bound as rho approaches 1: the last 10 % of capacity costs far more waiting than the first 50 %. Above rho = 1 the queue grows linearly, at rate lambda - m mu.

Burst arrivals

A train unloads N people at once. With the arrival rate below capacity the queue drains in N / (m mu - lambda); the page uses the empty-street limit N / (m mu) for its check.

Walking on the steps

A walker moves at v + u relative to the ground, so the trip takes T = L / (v + u) instead of L / v. Little's law, N = X T (riders on the escalator = throughput times trip time), shows that walking reduces how many people are on the steps but not how many can enter, because boarding is limited by the step clock, not by the walking speed. This is why asking everyone to stand does not lower the throughput, and why a lane of walkers can even starve the standing lane when the split is unbalanced.

Simplifications

Every rider boards within one slot of the step clock and never changes lane; walkers all move at the same speed so they never overtake; steps are not individually refused (no hesitation or luggage); the escalator runs at constant speed with no stops or slow-down; people are rigid figures of one size; the tread is modelled as flat with a fixed 30 degree slope. Real escalators reach 60-100 percent of the ideal capacity because of hesitation and group boarding.

What to try
  1. Press the first preset and note the capacity readout: 75 people per minute. Raise the arrival rate with the slider and watch the wait graph (graph 4) climb towards the capacity line.
  2. Choose the "Overloaded" preset: the queue grows linearly and the arrived-boarded gap in graph 2 widens at the rate lambda minus capacity.
  3. Set "Empty steps left after each rider" to 0: capacity doubles, the queue vanishes at the same arrival rate. Then press "Train arrives" and compare the drain time with N divided by capacity.
  4. Try "Everybody walks on the left": with 90 % walkers the left lane is overloaded while the right lane idles, so the escalator is under-used.
  5. Switch on "Step slots" (3D layers) to see occupied and empty steps; slow the time speed to follow one rider from queue to step.
Loading Blender model...
People waiting over time
Arrived and boarded: the queueing diagram
Wait before boarding: distribution
Mean wait against arrival rate (M/D/1 theory)
Made with 🟠 Blender · Three.js