GTsim is a  micro-simulation application  to accurately model real-world conditions. This application includes the latest advancements in lane changing models that are capable of explaining congestion dynamics such as capacity drop. It also has several driver behavioral models for mandatory lane changes to replicate real-world behavior during congested traffic conditions.  The application has been written in JAVA using the NetBeans IDE.

Process Flow

Figure 1  shows the process flow for the GTsim application. The classes shown on the left form the critical modules of the application. The methods shown in the center are some of the critical functionalities of the modules on the left. Lastly, the supporting classes provide some additional functionality for the modules.

The framework for GTsim is setup such that every time the simulation is initiated, it creates an instance of simulation which calls various modules during every time-step to update each vehicle’s velocity, location, and animation. Thus this framework allows writing new methods for any future models to replace the old models and facilitate easy implementation of new models in the simulation. The next section describes some of the details of the critical modules.

Figure 1: Process Flow for the Simulation Application

Critical Modules

The application includes the following critical classes that are interdependent and form the core of the application:

  • Traffic Simulation Application
  • Simulation
  • Connection
  • Lane
  • Vehicle
  • Intersection
  • Detector Station
  • Ramp Meter
  • Variable Speed Limit
  • Traffic Light

The Application

This module has all the application’s user interface with background map as shown in Figure 2. The GUI has the provision to Navigate to any part of the map, zoom in/out capability, add/erase connections and intersections, start/pause/stop simulation, create new/open existing/save a network model, and several other features.

Figure 2: Transportation Network background for the Application

Every network is built with by using intersections (nodes or vertices) and connections (directed edges or links).  The application allows many different intersection types (including Origin, Destination, Generic, Signalized, on-ramp with lane merge, on-ramp with lane addition, exit with shared lane, exit with a lane drop, and exit with two lanes drop etc.) and connector types (Generic, on-ramp, off-ramp etc.). For each connection and Intersection several geometric and operational parameters could be defined. Figure 3 shows a sample coded network.

Figure 3: Sample Network

After the network is coded/loaded, clicking the play button initializes the Origin-Destination (OD) matrix. The default OD matrix can be changed using the GUI or can be read from a text file (loadNextODMFile() in After the OD matrix is loaded, the simulation will display an animation window as shown in Figure 4. The animation of vehicles on any given link can be viewed by clicking on the desired link on the network.

Figure 4: Sample Animation Snapshot