# akshaysinha07/traffix architecture

> Architecture diagram of the GitHub repository akshaysinha07/traffix, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/akshaysinha07/traffix
- Repository: https://github.com/akshaysinha07/traffix

## Overview

Traffix detects vehicles from video, optionally feeds lane counts into a SUMO simulation, adapts signal timings and coordinates green waves, then exposes simulation metrics and network locations in a dashboard. The dashboard can launch the simulation; the vision API is a separate optional service used by vision-linked mode. Paths and connections reflect the tree, README, and sampled source; wiring for unsampled modules is omitted where uncertain.

Main entry points: [`simulation_module/sim_engine.py`](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/sim_engine.py) (Simulation engine), [`dashboard/server.py`](https://github.com/akshaysinha07/traffix/blob/main/dashboard/server.py) (Dashboard server), [`vision_module/vision_api.py`](https://github.com/akshaysinha07/traffix/blob/main/vision_module/vision_api.py) (Vision API), [`simulation_module/osm.sumocfg`](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.sumocfg) (SUMO configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_vision["Vehicle vision"]
  node_vision_api["Vision API<br/>[vision_api.py]"]
  node_yolo["YOLO model<br/>[yolov8n.pt]"]
  node_viewer["Video viewer<br/>[show_video.py]"]
  node_training["Model training<br/>[train.py]"]
  node_dataset["Training dataset config<br/>[dataset.yaml]"]
end

subgraph group_simulation["Traffic simulation"]
  node_sim_engine["Simulation engine<br/>[sim_engine.py]"]
  node_green_wave["Green-wave coordination<br/>[green_wave.py]"]
  node_dynamic_routes["Vision route injection<br/>[dynamic_routes.py]"]
end

subgraph group_dashboard["Dashboard"]
  node_dashboard_server["Dashboard server<br/>[server.py]"]
  node_dashboard_ui["Dashboard UI<br/>[index.html]"]
end

subgraph group_shared["Inputs and results"]
  node_video["Traffic video<br/>[traffic.mp4]"]
  node_network["Road network<br/>[osm.net.xml]"]
  node_routes["Vehicle routes<br/>[osm.rou.xml]"]
  node_sumo_config["SUMO configuration<br/>[osm.sumocfg]"]
  node_results["Simulation results<br/>[results.json]"]
  node_config["Shared configuration<br/>[config.py]"]
end

node_operator(("Operator"))
node_sumo["SUMO runtime"]
node_vision_service["Vision HTTP service"]

node_operator -->|"starts service"| node_vision_api
node_vision_api -->|"reads frames"| node_video
node_vision_api -->|"runs inference"| node_yolo
node_viewer -->|"reads frames"| node_video
node_viewer -->|"runs inference"| node_yolo
node_operator -->|"views detections"| node_viewer
node_training -->|"loads config"| node_dataset
node_training -->|"fine-tunes model"| node_yolo
node_operator -->|"uses dashboard"| node_dashboard_ui
node_dashboard_ui -->|"requests pages"| node_dashboard_server
node_dashboard_server -->|"reads metrics"| node_results
node_dashboard_server -->|"reads locations"| node_network
node_dashboard_server -->|"launches process"| node_sim_engine
node_sim_engine -->|"loads settings"| node_config
node_sim_engine -->|"starts and controls"| node_sumo
node_sumo -->|"loads config"| node_sumo_config
node_sumo_config -->|"loads network"| node_network
node_sumo_config -->|"loads routes"| node_routes
node_sim_engine -->|"detects and applies"| node_green_wave
node_sim_engine -.->|"sets up and injects"| node_dynamic_routes
node_dynamic_routes -.->|"requests lane counts"| node_vision_service
node_vision_service -.->|"serves counts"| node_vision_api
node_sim_engine -->|"writes metrics"| node_results

click node_video "https://github.com/akshaysinha07/traffix/blob/main/data/traffic.mp4"
click node_vision_api "https://github.com/akshaysinha07/traffix/blob/main/vision_module/vision_api.py"
click node_yolo "https://github.com/akshaysinha07/traffix/blob/main/vision_module/yolov8n.pt"
click node_viewer "https://github.com/akshaysinha07/traffix/blob/main/vision_module/show_video.py"
click node_training "https://github.com/akshaysinha07/traffix/blob/main/vision_module/train.py"
click node_dataset "https://github.com/akshaysinha07/traffix/blob/main/vision_module/dataset.yaml"
click node_sim_engine "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/sim_engine.py"
click node_network "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.net.xml"
click node_routes "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.rou.xml"
click node_sumo_config "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.sumocfg"
click node_green_wave "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/green_wave.py"
click node_dynamic_routes "https://github.com/akshaysinha07/traffix/blob/main/simulation_module/dynamic_routes.py"
click node_results "https://github.com/akshaysinha07/traffix/blob/main/results.json"
click node_dashboard_server "https://github.com/akshaysinha07/traffix/blob/main/dashboard/server.py"
click node_dashboard_ui "https://github.com/akshaysinha07/traffix/blob/main/dashboard/templates/index.html"
click node_config "https://github.com/akshaysinha07/traffix/blob/main/config.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_vision_api,node_yolo,node_viewer,node_training,node_dataset toneBlue
class node_sim_engine,node_green_wave,node_dynamic_routes toneAmber
class node_dashboard_server,node_dashboard_ui toneMint
class node_video,node_network,node_routes,node_sumo_config,node_results,node_config toneRose
class node_operator,node_sumo,node_vision_service toneIndigo
```

## Components

### Vehicle vision

- [Vision API](https://github.com/akshaysinha07/traffix/blob/main/vision_module/vision_api.py): `vision_module/vision_api.py`
- [YOLO model](https://github.com/akshaysinha07/traffix/blob/main/vision_module/yolov8n.pt): `vision_module/yolov8n.pt`
- [Video viewer](https://github.com/akshaysinha07/traffix/blob/main/vision_module/show_video.py): `vision_module/show_video.py`
- [Model training](https://github.com/akshaysinha07/traffix/blob/main/vision_module/train.py): `vision_module/train.py`
- [Training dataset config](https://github.com/akshaysinha07/traffix/blob/main/vision_module/dataset.yaml): `vision_module/dataset.yaml`

### Traffic simulation

- [Simulation engine](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/sim_engine.py): `simulation_module/sim_engine.py`
- [Green-wave coordination](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/green_wave.py): `simulation_module/green_wave.py`
- [Vision route injection](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/dynamic_routes.py): `simulation_module/dynamic_routes.py`

### Dashboard

- [Dashboard server](https://github.com/akshaysinha07/traffix/blob/main/dashboard/server.py): `dashboard/server.py`
- [Dashboard UI](https://github.com/akshaysinha07/traffix/blob/main/dashboard/templates/index.html): `dashboard/templates/index.html`

### Inputs and results

- [Traffic video](https://github.com/akshaysinha07/traffix/blob/main/data/traffic.mp4): `data/traffic.mp4`
- [Road network](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.net.xml): `simulation_module/osm.net.xml`
- [Vehicle routes](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.rou.xml): `simulation_module/osm.rou.xml`
- [SUMO configuration](https://github.com/akshaysinha07/traffix/blob/main/simulation_module/osm.sumocfg): `simulation_module/osm.sumocfg`
- [Simulation results](https://github.com/akshaysinha07/traffix/blob/main/results.json): `results.json`
- [Shared configuration](https://github.com/akshaysinha07/traffix/blob/main/config.py): `config.py`

### Other components

- **Operator**
- **SUMO runtime**
- **Vision HTTP service**

## Connections

- Operator → Vision API: starts service
- Vision API → Traffic video: reads frames
- Vision API → YOLO model: runs inference
- Video viewer → Traffic video: reads frames
- Video viewer → YOLO model: runs inference
- Operator → Video viewer: views detections
- Model training → Training dataset config: loads config
- Model training → YOLO model: fine-tunes model
- Operator → Dashboard UI: uses dashboard
- Dashboard UI → Dashboard server: requests pages
- Dashboard server → Simulation results: reads metrics
- Dashboard server → Road network: reads locations
- Dashboard server → Simulation engine: launches process
- Simulation engine → Shared configuration: loads settings
- Simulation engine → SUMO runtime: starts and controls
- SUMO runtime → SUMO configuration: loads config
- SUMO configuration → Road network: loads network
- SUMO configuration → Vehicle routes: loads routes
- Simulation engine → Green-wave coordination: detects and applies
- Simulation engine → Vision route injection: sets up and injects
- Vision route injection → Vision HTTP service: requests lane counts
- Vision HTTP service → Vision API: serves counts
- Simulation engine → Simulation results: writes metrics
