Quickstart
Get SimulationBank up and running in minutes. This guide assumes you have Python 3.x and Node.js installed.For detailed installation instructions, see the Installation Guide.
Prerequisites
Installation
- Backend Setup
- Frontend Setup
Running Your First Simulation
Configure simulation parameters
You’ll see configuration sliders for:
- Number of Tellers: Start with
3 - Arrival Rate (λ): Try
1.0customers per second - Service Mean (μ): Try
5.0seconds per customer - Simulation Duration: Set to
3600seconds (1 hour)
Start the simulation
Click the “Start Simulation” button.You’ll immediately see:
- Events being processed in the event queue
- Customers appearing in the priority queue
- Tellers transitioning between IDLE and BUSY states
- Metrics updating in real-time
Observe the queue visualization
The queue visualizer shows:
- Red nodes: High-priority customers (Priority 1)
- Yellow nodes: Medium-priority customers (Priority 2)
- Green nodes: Low-priority customers (Priority 3)
Monitor metrics
The metrics dashboard displays:
- Wait Time Chart: Average time customers spend waiting
- Queue Length: Number of customers waiting over time
- Throughput: Customers served per time unit
- Saturation Report: Teller utilization percentage
Example Simulation Run
Here’s what a typical simulation looks like:Expected Results
With λ = 1.0 (arrival rate) and μ = 0.2 (service rate = 1/5.0), and c = 3 tellers:- Traffic Intensity (ρ): ρ = λ/(c×μ) = 1.0/(3×0.2) = 1.67
- Since ρ > 1, the system is overloaded - queue will grow unbounded
Understanding the Output
Event Processing
The simulation processes three event types:Queue Dynamics
Customers in thewaiting_queue are sorted by:
- Priority (ascending): 1 (High) < 2 (Medium) < 3 (Low)
- Arrival time (ascending): FIFO within same priority
Next Steps
Configure Parameters
Learn how to tune simulation parameters
Interpret Metrics
Understand wait times, throughput, and saturation
Simulation Engine
Deep dive into the DiscreteEventSimulation class
Advanced Scenarios
Explore high-load and optimization scenarios
Troubleshooting
Backend won't start - Port 5000 already in use
Backend won't start - Port 5000 already in use
Kill the process using port 5000:
Frontend can't connect to backend
Frontend can't connect to backend
Verify:
- Backend is running at
http://localhost:5000 - CORS is enabled (flask-cors installed)
- Check browser console for CORS errors
Queue grows indefinitely
Queue grows indefinitely
Your arrival rate is too high for the number of tellers!
- Increase
num_tellers - Decrease
arrival_rate - Decrease
service_mean(faster service)
No customers appearing
No customers appearing
Check your arrival_rate:
- Very low rates (< 0.1) mean long intervals between customers
- Increase to 1.0 or higher for visible activity