Teaching stoplights to think with reinforcement learning
A Berkeley-born framework that wraps traffic microsimulators so RL agents can learn to control vehicles and signals.

What it does Flow is a Python framework that connects deep reinforcement learning algorithms to traffic microsimulation. It lets researchers train RL agents to control individual vehicles or traffic signals in simulated road networks, then benchmark the results against standard scenarios.
The interesting bit The “mixed-autonomy” angle is the hook: Flow specifically targets situations where only some vehicles are autonomous and the rest are human-driven. That mismatch is where real-world traffic control gets messy, and it’s harder to simulate cleanly than all-robot convoys.
Key highlights
- Built on SUMO for traffic simulation; plugs into RL libraries (the README implies rllab/RLlib integration, though it doesn’t detail which)
- Ships with benchmark scenarios from published CoRL 2018 paper
- UC Berkeley project with academic backing (AWS ML grants, Mobile Sensing Lab)
- MIT licensed; Binder environment available for quick experiments
- Active Slack community and contribution guidelines
Caveats
- README is thin on technical architecture; you’ll need to dig into docs or tutorials to understand the RL backend wiring
- Last Travis CI badge suggests legacy CI; project activity level unclear from README alone
- “Deep RL and control experiments” is vague about supported algorithms out of the box
Verdict Grab this if you’re doing academic research on autonomous vehicle coordination or need a standardized benchmark for traffic RL. Skip if you want production traffic management or a polished, batteries-included simulator.