How pratyushsahu9000/synflow-adaptive-traffic-signal-control works
SynFlow is a research prototype for simulation-based adaptive traffic-signal control. Researchers start a matched experiment in the dashboard; the API launches the Python runner, which evaluates Fixed, NN, and Neuro-Symbolic controllers on SUMO using a shared seed. Results are stored and surfaced as controller details, live progress, and comparisons. The graph also preserves the documented dataset-generation and MLP-training capabilities. Runtime links follow excerpts or README documentation; unsampled integration details are omitted where evidence is limited.
Main entry points: App.jsx Dashboard Routes · experiments.js Experiment Routes · run_matched_experiment.py Matched Experiment Runner · Controller.jsx Controller Details
Components 24
Dashboard
- Dashboard Routes
SynFlow Complete Frontend/src/App.jsx - Experiment State
SynFlow Complete Frontend/src/ExperimentContext.jsx - API Client
SynFlow Complete Frontend/src/api.js - Experiment Selector
SynFlow Complete Frontend/src/components/ExperimentBar.jsx - Progress View
SynFlow Complete Frontend/src/components/ExperimentRunning.jsx - Progress Animation
SynFlow Complete Frontend/src/components/DotMatrixVortex.jsx - Experiment Landing
SynFlow Complete Frontend/src/pages/Landing.jsx - Controller Details
SynFlow Complete Frontend/src/pages/Controller.jsx - Controller Comparison
SynFlow Complete Frontend/src/pages/Compare.jsx - Metrics and Charts
SynFlow Complete Frontend/src/components/Common.jsx - Experiment Status Gate
SynFlow Complete Frontend/src/components/Gate.jsx
Experiment API
- Experiment Routes
Synflow Complete Backend/server/routes/experiments.js - Experiment Runner Service
Synflow Complete Backend/server/services/runner.js - Comparison Metrics
Synflow Complete Backend/server/services/compare.js - MongoDB Experiment Store
Synflow Complete Backend/server/models/Experiment.js
Simulation and Control
- Matched Experiment Runner
Synflow Complete Backend/engine/run_matched_experiment.py - Fixed Controller
Synflow Complete Backend/engine/Model/controller_fixed_final.py - Neural Controller
Synflow Complete Backend/engine/Model/controller_nn_final.py - Neuro-Symbolic Controller
Synflow Complete Backend/engine/Model/controller_nesy_final.py - SUMO Intersection Simulation
Synflow Complete Backend/engine/SUMO/nets/intersection.sumocfg
Data and Model
- Traffic Dataset Generation
data_generation/generate_dataset.py - MLP Training
synflow-nn.ipynb - MLP and Preprocessing Artifacts
Synflow Complete Backend/engine/Model/final_model.pt
Other components
- Researcher
Connections 30
- Researcher → Dashboard Routes: uses
README.md - Dashboard Routes → Experiment State: provides state
SynFlow Complete Frontend/src/App.jsx - Experiment State → API Client: requests data
SynFlow Complete Frontend/src/ExperimentContext.jsx - Dashboard Routes → Experiment Landing: routes to
SynFlow Complete Frontend/src/App.jsx - Dashboard Routes → Controller Details: routes to
SynFlow Complete Frontend/src/App.jsx - Dashboard Routes → Controller Comparison: routes to
SynFlow Complete Frontend/src/App.jsx - Dashboard Routes → Experiment Selector: renders
SynFlow Complete Frontend/src/App.jsx - Experiment Landing → Metrics and Charts: renders
SynFlow Complete Frontend/src/pages/Landing.jsx - Controller Details → Experiment Status Gate: gates results
SynFlow Complete Frontend/src/pages/Controller.jsx - Controller Details → Metrics and Charts: renders metrics
SynFlow Complete Frontend/src/pages/Controller.jsx - Controller Comparison → Experiment Status Gate: gates results
SynFlow Complete Frontend/src/pages/Compare.jsx - Controller Comparison → Metrics and Charts: renders charts
SynFlow Complete Frontend/src/pages/Compare.jsx - Experiment Status Gate → Progress View: shows progress
SynFlow Complete Frontend/src/components/Gate.jsx - Progress View → Progress Animation: renders
SynFlow Complete Frontend/src/components/ExperimentRunning.jsx - API Client → Experiment Routes: REST and SSE
README.md - Experiment Routes → Experiment Runner Service: starts runs
Synflow Complete Backend/server/routes/experiments.js - Experiment Routes → MongoDB Experiment Store: reads experiments
Synflow Complete Backend/server/routes/experiments.js - Experiment Routes → Comparison Metrics: computes comparison
Synflow Complete Backend/server/routes/experiments.js - Experiment Runner Service → MongoDB Experiment Store: creates and updates
Synflow Complete Backend/server/services/runner.js - Experiment Runner Service → Matched Experiment Runner: spawns Python runner
Synflow Complete Backend/server/services/runner.js - Matched Experiment Runner → Fixed Controller: runs matched
README.md - Matched Experiment Runner → Neural Controller: runs matched
README.md - Matched Experiment Runner → Neuro-Symbolic Controller: runs matched
README.md - Fixed Controller → SUMO Intersection Simulation: controls simulation
README.md - Neural Controller → SUMO Intersection Simulation: controls simulation
README.md - Neuro-Symbolic Controller → SUMO Intersection Simulation: controls simulation
README.md - Traffic Dataset Generation → MLP Training: provides training data
README.md - MLP Training → MLP and Preprocessing Artifacts: produces model
README.md - Neural Controller → MLP and Preprocessing Artifacts: uses inference model
README.md - Neuro-Symbolic Controller → MLP and Preprocessing Artifacts: uses inference model
README.md