An urban traffic simulator. Vehicles plan routes with A* and make per-tick decisions at intersections (stop signs, traffic lights, right-of-way) via behavior trees, all rendered live in a browser canvas.
git clone https://github.com/exterminathan/NavAIGate.git
cd NavAIGateLinux / macOS:
./start.shWindows (PowerShell):
.\start.ps1The bootstrap script installs dependencies, runs the test suite, then launches Flask. Open http://127.0.0.1:5000/ once it prints Running on ....
Click any intersection in the visualizer to cycle its type (nothing → stop_sign → traffic_light).
Prefer to run each step yourself?
Recommended: use a virtual environment so dependencies don't pollute your system Python.
Linux / macOS:
python3 -m venv .venv
source .venv/bin/activate
pip install -r urban-traffic-sim/requirements.txt
pytest urban-traffic-sim/tests
python urban-traffic-sim/app.pyWindows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r urban-traffic-sim/requirements.txt
pytest urban-traffic-sim/tests
python urban-traffic-sim/app.pyPython 3.10+ is recommended (the repo pins 3.10 in .python-version). The .venv/ folder is gitignored.
urban-traffic-sim/ Flask app, simulation core, BT, frontend assets
tests/ pytest suite (graph, A*, BT smoke test)
docs/ screenshots / preview assets
start.{sh,ps1} one-command bootstrap
CLAUDE.md deeper architecture notes
Originally built as the final project for CMPM 146 (Game AI) at UC Santa Cruz by:
The original repo was private; this re-upload contains follow-up fixes and improvements. For deeper architecture notes see CLAUDE.md.
