Skip to content

JevLight

Traffic signal controller where Jev picks each intersection's next phase from a SUMO snapshot, with local fallbacks.

Projectresearch

Overview

JevLight applies Jev to traffic signal control in SUMO simulation, following the observation and control conventions of the LLMLight and CoLLMLight research code. Each intersection's snapshot (queues, approaching vehicles by segment, waiting times) becomes the state, and a choice question asks which signal phase to run next, with the four phases as criteria. A speculative yes/no question about congestion is logged in the same request for analysis.

By default all active intersections are packed into one shared state with one question each, so the whole network decides in a single API call per control step. Empty junctions skip the API and use a local waiting-time ranking, and failed, rate-limited or low-confidence answers fall back to the previous signal or the local ranking. The client can talk to the official TypeSafe API, an MCP endpoint or a local vLLM-based /v1/systemone service, and a three.js visualiser is included. It is aimed at traffic-control researchers.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich phase should this intersection run next?ETWT · NTST · ELWL · NLSL
Yes / noIs this junction congested?—

How it works

  1. SUMO step produces per-intersection observations
  2. Active junctions are packed into one state with one phase question each
  3. Jev returns a phase, distribution and confidence per junction
  4. Answers below --min_confidence, failures or empty junctions fall back to previous signal or local ranking
  5. Metrics are recorded with ChatLight's evaluation code

Strengths

  • One API call per control step for the whole network
  • Explicit fallbacks keep the simulation running on errors
  • Can run against a local Jev-style server instead of the hosted API
  • Reuses established evaluation metrics for comparison

Caveats

  • Simulation research, not a deployed traffic system
  • No published results in the README excerpt
  • Hosted mode needs a TypeSafe key

Getting started

Run python run_jevlight.py (mirrors run_LLMLight.py); scripts/serve_jev.sh starts a local Jev-style service.

At a glance

Type
Project
Status
research
Language
Python
Runtime
SUMO simulation
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide in JevLight?

The next signal phase for each intersection, from four phase options, plus a logged congestion yes/no.

What happens if the API fails?

The controller keeps the previous signal or uses a local waiting-time ranking.

Can I run it without TypeSafe?

Yes, it includes a local /v1/systemone service based on vLLM logit readout, or a mock.

Related projects

  • Three.js box steered by plain-language instructions: an LLM plans steps, Jev decides move, turn and jump in real time.

    ProjectprototypeTypeScript
  • Three.js driving simulator with a fast reflex layer, a TTC safety brake and an optional Jev API strategy layer.

    ProjectprototypeJavaScript
  • Three.js driving simulator where Jev picks among locally sampled steering-and-speed paths while code handles geometry and safety.

    ProjectprototypeTypeScript
  • Fixed-wing landing simulator and benchmark where Jev maps four Choice decisions to aircraft controls against humans, baselines and LLMs.

    DemoprototypePython
  • Simulation where Jev picks which of two conflicting signal phases gets green at a real Hong Kong junction from live open sensor data.

    ServiceprototypePython
  • Simulated Franka arm that follows plain-English goals by having Jev chain about 30 hardcoded motion primitives, one per step.

    Agent skillprototypePython