LEVELElevator Lab
System ready

Everything under control.

Three elevators. Five floors. Every move has a reason.

Building

3 elevators / 5 floors
05Panorama
04Studio
03Offices
02Coworking
01Lobby

Choose a direction on any floor. The dispatcher will assign an elevator.

Queued0
Served0
Average wait—

Event log

Live updates
SYSSystem ready · 3 elevators, 5 floors
LEVEL — a state machine playgroundAngular · TypeScript

Small building.
Plenty of states.

Each elevator has its own route and state machine. The dispatcher decides which one handles the next call.

  1. Call an elevatorThe arrows on each floor set your direction. The button color shows which elevator is assigned. On the first floor, you can go up. On the fifth floor, you can go down.
  2. Pick your destinationClick an elevator or its A, B, or C tab, then select a floor in the control panel. You can add multiple stops, even while the elevator is moving.
  3. Watch the transitionsMoving → opening → boarding → closing. Once the doors close, the elevator continues its route or returns to idle. A call on its current floor opens the doors without a trip.
  4. ExperimentPause freezes both the simulation and its animation. Speed up time with 2x or 4x. Running a scenario resets the building and starts a repeatable sequence of trips.

The dispatcher considers distance, direction, and queued stops. Wait time is measured in simulation time until the doors fully open. This is a control model: passengers, capacity, and emergency modes are not simulated.