Skip to content

About

This repository contains the code and analysis for the research paper "Exploring Veo 3's Capabilities for Generating Urban Traffic Scenes in 76 Cities Worldwide", presented at the 18th International Conference on Automotive User Interfaces and Interactive Vehicular Applications (AutomotiveUI Adjunct ’26).

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

llm-traffic-scene

Overview

This study explores the potential of Google Veo 3, a generative video model, to synthesise 8-second dashcam-style urban traffic scenes based solely on text prompts in 76 cities across six continents. YOLOv11x was used to count road users, traffic lights, and stop signs, revealing variations across cities: Karachi had the most objects detected (79), while Muscat had only four cars. Audio analysis using dBFS showed that Montevideo was the loudest, while Copenhagen was the quietest. Through a qualitative visual analysis, the authors assessed and confirmed the perceived authenticity of most traffic scenes and highlighted AI errors, including the inability to handle non-English languages in these videos. Moreover, we compared 10 synthetic videos of New York City and Kampala, each, and verified that Veo 3 is consistent. To summarise, Veo 3 is capable of synthesising authentic, logical traffic scenes worldwide; nevertheless, it still poses non-negligible errors.

Citation

If you use the llm-traffic-scene for academic work please cite the following paper:

Alam, M. S., & Wang, Z., & Zhang, L., & Bazilinskyy, P. (2026). Exploring Veo 3's Capabilities for Generating Urban Traffic Scenes in 76 Cities Worldwide. 18th International Conference on Automotive User Interfaces and Interactive Vehicular Applications. Gothenburg, Sweden. https://doi.org/10.1145/3828158.3838250

Running analysis code

Getting started

Python Version Package Manager: uv

Tested with Python 3.12.13 and the uv package manager.
Follow these steps to set up the project.

Step 1: Install uv. uv is a fast Python package and environment manager. Install it using one of the following methods:

macOS / Linux (bash/zsh):

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

irm https://astral.sh/uv/install.ps1 | iex

Alternative (if you already have Python and pip):

pip install uv

Step 2: Fix permissions (if needed):t

Sometimes uv needs to create a folder under ~/.local/share/uv/python (macOS/Linux) or %LOCALAPPDATA%\uv\python (Windows).
If this folder was created by another tool (e.g. sudo), you may see an error like:

error: failed to create directory ... Permission denied (os error 13)

To fix it, ensure you own the directory:

macOS / Linux

mkdir -p ~/.local/share/uv
chown -R "$(id -un)":"$(id -gn)" ~/.local/share/uv
chmod -R u+rwX ~/.local/share/uv

Windows

# Create directory if it doesn't exist
New-Item -ItemType Directory -Force "$env:LOCALAPPDATA\uv"

# Ensure you (the current user) own it
# (usually not needed, but if permissions are broken)
icacls "$env:LOCALAPPDATA\uv" /grant "$($env:UserName):(OI)(CI)F"

Step 3: After installing, verify:

uv --version

Step 4: Clone the repository:

git clone https://github.com/Shaadalam9/llm-traffic-scene

Step 5: Ensure correct Python version. If you don’t already have Python 13 installed, let uv fetch it:

uv python install 3.12.13

The repo should contain a .python-version file so uv will automatically use this version.

Step 6: Create and sync the virtual environment. This will create .venv in the project folder and install dependencies exactly as locked in uv.lock:

uv sync --frozen

Step 7: Activate the virtual environment:

macOS / Linux (bash/zsh):

source .venv/bin/activate

Windows (PowerShell):

.\.venv\Scripts\Activate.ps1

Windows (cmd.exe):

.\.venv\Scripts\activate.bat

Step 8: Ensure that dataset are present. Place required datasets (including mapping.csv) into the data/ directory:

Step 9: Run the code:

python3 run.py

Configuration of project

Configuration of the project needs to be defined in config. Please use the default.config file for the required structure of the file. If no custom config file is provided, default.config is used. The config file has the following parameters:

  • videos: Directory containing the videos generated from Veo3.
  • mapping: CSV file containg the information about the cities.
  • data: Directory containing the YOLO output.
  • snaps: Directory containing the first frame from each generated video file.
  • confidence: Sets the confidence threshold parameter for YOLO.
  • model: Specifies the YOLO model to use; supported/tested versions include v8x and v11x.
  • tracking_mode: Configures YOLO for object tracking.
  • always_analyse: Always conduct analysis even when pickle files are present (good for testing).
  • display_frame_tracking: Displays the frame tracking during analysis.
  • save_annotated_img: Saves the annotated frames produced by YOLO.
  • save_tracked_img: Saves the tracked frames produced by YOLO.
  • delete_labels: Deletes label files from YOLO output.
  • delete_frames: Deletes frames from YOLO output.
  • delete_runs_files: Deletes files containing YOLO output after analysis.
  • font_family: Specifies the font family to be used in outputs.
  • font_size: Specifies the font size to be used in outputs.
  • plotly_template: Defines the template for Plotly figures.
  • logger_level: Level of console output. Can be: debug, info, warning, error.

Detection of objects

Alphabetical Sorting Distribution of different objects detected in the videos, sorted in alphabetical order..

Average Value Sorting Distribution of objects detected in the videos, sorted by the average values of object counts..

Continent and Average Value Sorting Distribution of objects detected in the videos, first grouped by continent and then sorted by average values within each continent.

Sound from the videos of different cities

Sound from the videos Sound from different countries (measured in dB).

Sound from the videos of different cities

Sound from the videos Distribution of object detected in 10 different videos of New York City (United States) and Kampala (Uganda).

First frame from Veo 3 generated videos

Africa

Accra_Ghana Algiers_Algeria Asmara_Eritrea Banjul_Gambia
Accra (Ghana) Algiers (Algeria) Asmara (Eritrea) Banjul (Gambia)
Bangui_Central African RepublicR Cairo_Egypt Kampala_Uganda Kinshasa_Democratic Republic of the Congo
Bangui (Central African Republic) Cairo (Egypt) Kampala (Uganda) Kinshasa (DR Congo)
Lagos_Nigeria N'Djamena_Chad Tunis_Tunisia Zanzibar_Tanzania
Lagos (Nigeria) N'Djamena (Chad) Tunis (Tunisia) Zanzibar (Tanzania)

Asia

Almaty_Kazakhstan Baghdad_Iraq Baku_Azerbaijan Beijing_China
Almaty (Kazakhstan) Baghdad (Iraq) Baku (Azerbaijan) Beijing (China)
Bangkok_Thailand Colombo_Sri Lanka Damascus_Syria Dhaka_Bangladesh
Bangkok (Thailand) Colombo (Sri Lanka) Damascus (Syria) Dhaka (Bangladesh)
Doha_Qatar Dubai_United Arab Emirates Istanbul_Türkiye Jakarta_Indonesia
Doha (Qatar) Dubai (United Arab Emirates) Istanbul (Türkiye.png) Jakarta (Indonesia)
Kabul_Afghanistan Karachi_Pakistan Kathmandu_Nepal Kuala Lumpur_Malaysia
Kabul (Afghanistan) Karachi (Pakistan) Kathmandu (Nepal) Kuala Lumpur (Malaysia)
Malé_Maldives Mumbai_India Muscat_Oman Phnom Penh_Cambodia
Malé (Maldives) Mumbai (India) Muscat (Oman) Phnom Penh (Cambodia)
Pyongyang_North Korea Riyadh_Saudi Arabia Seoul_South Korea Tehran_Iran
Pyongyang (North Korea) Riyadh (Saudi Arabia) Seoul (South Korea) Tehran (Iran)
Tel Aviv_Israel Tokyo_Japan Yangon_Myanmar
Tel Aviv (Israel) Tokyo (Japan) Yangon (Myanmar)

Europe

Amsterdam_The Netherlands Athens_Greece Barcelona_Spain Berlin_Germany
Amsterdam (The Netherlands) Athens (Greece) Barcelona (Spain) Berlin (Germany)
Brussels_Belgium Copenhagen_Denmark Dubrovnik_Croatia Helsinki_Finland
Brussels (Belgium) Copenhagen (Denmark) Dubrovnik (Croatia) Helsinki (Finland)
Kyiv_Ukraine Lisbon_Portugal London_United Kingdom Moscow_Russia
Kyiv (Ukraine) Lisbon (Portugal) London (United Kingdom) Moscow (Russia)
Oslo_Norway Paris_France Rome_Italy Sofia_Bulgaria
Oslo (Norway) Paris (France) Rome (Italy) Sofia (Bulgaria)
Stockholm_Sweden Tirana_Albania Vatican City_Vatican Warsaw_Poland
Stockholm (Sweden) Tirana (Albania) Vatican City (Vatican) Warsaw (Poland)
Zurich_Switzerland
Zurich (Switzerland)

North America

Havana_Cuba Mexico City_Mexico New York City_United States Panama City_Panama
Havana (Cuba) Mexico City (Mexico) New York City (United States) Panama City (Panama)
Toronto_Canada
Toronto (Canada)

Oceania

Auckland_New Zealand Funafuti_Tuvalu Jakarta_Indonesia Suva_Fiji
Auckland (New Zealand) Funafuti (Tuvalu) Jakarta (Indonesia) Suva (Fiji)

South America

Asunción_Paraguay Buenos Aires_Argentina Lima_Peru Montevideo_Uruguay
Asunción (Paraguay) Buenos Aires (Argentina) Lima (Peru) Montevideo (Uruguay)
Quito_Ecuador Rio de Janeiro_Brazil Santiago_Chile
Quito (Ecuador) Rio de Janeiro (Brazil) Santiago (Chile)

Frames from 10 videos of New York City (United States)

New York City1_United States New York City2_United States New York City3_United States New York City4_United States
New York City5_United States New York City6_United States New York City7_United States New York City8_United States
New York City9_United States New York City10_United States

Frames from 10 videos of Kampala (Uganda)

Kampala1_Uganda Kampala2_Uganda Kampala3_Uganda Kampala4_Uganda
Kampala5_Uganda Kampala6_Uganda Kampala7_Uganda Kampala8_Uganda
Kampala9_Uganda Kampala10_Uganda

Contact

If you have any questions or suggestions, feel free to reach out to md_shadab_alam@outlook.com or pavlo.bazilinskyy@gmail.com.

About

This repository contains the code and analysis for the research paper "Exploring Veo 3's Capabilities for Generating Urban Traffic Scenes in 76 Cities Worldwide", presented at the 18th International Conference on Automotive User Interfaces and Interactive Vehicular Applications (AutomotiveUI Adjunct ’26).

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages