← All work
Case Study 02 · Five AI · Genie Scenario Editor

Orchestrating Traffic Signals

From ASAM spec to scenario controller — designing the tooling that let engineers orchestrate entire junctions without editing each traffic light individually.

Timeline
2023 – 2024
Role
Lead Product Designer
Team
1 PM · 5 Engineers
Platform
Genie · Scenario Editor
Tools
Figma · Miro · Unity

Traffic controller grouping multiple signals into one orchestrated phase sequence

06 — Impact

Impact

50 min – 2 hr
→ 15 – 40 min

orchestration time for a 4–10 signal roundabout

~8%

increase in traffic-signal–based scenario creation post-redesign.

Reduced errors

configuration errors and improved clarity in complex intersections — qualitative feedback from engineers.

Goal

Orchestrate complex traffic-signal behaviours on a map — including multi-lane vehicle interactions and pedestrian crossings — so engineers could build more realistic AV testing scenarios without editing each traffic light individually.

3D rendered junction in Genie with a single traffic light selected

A single signal selected in Genie's 3D simulation world

01 — Empathise

From spec to daily use

The Genie Scenario Editor follows ASAM OpenSCENARIO 2, which allows traffic signals to be grouped under a single TrafficSignalController with synchronised phases and durations. On paper, a footnote. In practice, the gap between a feature that existed in a standard and one that worked for people authoring scenarios daily.

I sat with a Traffic Simulation Test Engineer as they built a junction scenario, watching them work through a roundabout signal by signal. They knew exactly what the junction needed to do — but couldn't get there without re-clicking a dozen lights, second-guessing whether each one was already synced. That gap between intent and tool capability, repeated across every scenario, was the real problem.

Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Signal-by-signal editing
Editing signal 1 of 4 Editing signal 2 of 4 Editing signal 3 of 4 Editing signal 4 of 4 — then start over for each phase
Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Traffic State
Red
Amber
Green
Controller-grouped editing
Group A (NW + NE) — facing signals, one controller Group B (SW + SE) — facing signals, one controller
02 — Define

50 minutes to 2 hours — by hand

Engineers were building roundabouts with four to ten lights entirely by hand — select, set colour, set timing, repeat per signal, per phase. Nothing was linked or traceable. One mismatched phase could silently invalidate a scenario.

Key insight: engineers weren't short on information — they were drowning in irrelevant information, with no visible relationship between a controller, its lanes, and its crossings.

J
Primary Persona
Jamie, 31 · Traffic Simulation Test Engineer
Technical level
Advanced — Python, Unity, ASAM OSC2
AV domain
Level 4 autonomy, closed-loop simulation
Goal
Author junction scenarios accurately, at speed

User journey

50 min – 2 hours
1
Plan scenario
Add map & environment
Add vehicles
4
Set vehicle timeline behaviour
01 · No shared state between signals
Set traffic lights & phases
02 · Grows linearly — 10 signals = 10× work
6
Set initial AI position
03 · Individual control still needed
7
Run & analyse performance
04 · Silent errors invalidate the scenario
Individual traffic light editor — state picker showing Off, Red, Amber, Green, Red Amber, Flashing Amber
Before: Editing a single traffic light — engineers had to repeat this for every signal in a junction
Complex junction in Genie with multiple orange-highlighted traffic signals scattered across the scene
Every orange-highlighted signal had to be placed and synchronised individually — by hand
03 — Ideate

Two mental models had to coexist

Novice users needed to grab a single signal and edit it directly. Experts orchestrating ten-signal roundabouts needed a grouped, synchronised abstraction. Rather than replacing one with the other, I kept both: an Activate Signal path for individual edits and a New Controller path for grouped ones, side by side. Autonomy stays with the user.

Ideation also surfaced two fundamentally different trigger needs: advancing phases on a fixed schedule, or advancing them when an actor reaches a specific position in the simulation. These served different testing goals and both needed to be first-class options.

PATH A · INDIVIDUAL

Activate Signal

Direct per-signal editing for simple scenarios. Engineers who need one light stay on a familiar, fast path.

PATH B · GROUPED

New Controller

One controller definition drives all member signals through synchronised phases. Define once, orchestrate at any scale.

04 — Prototype

The Controller Phase panel

Controller Phase panel. Engineers define a phase sequence — Attention, Stop, Go, Stop Attention — set durations, and attach signals as members. Phases are draggable, reorderable tabs. A Reference Another Controller toggle lets multi-crossing roundabouts inherit timing logic rather than duplicating it.

Trigger modes. Time-based mode sets a fixed duration per phase. Position-based mode ties a phase change to an actor's relative position — synced to the 3D viewport so engineers could visually confirm the trigger point. Critical for SOTIF and AI Planner edge-case testing.

An engineer creates a controller once, defines its phases — Attention, Stop, Go, Stop Attention — with durations, then adds any number of individual signals as members. Every member signal moves through phases in lockstep. Change the controller, every linked light updates.

Controller settings panel configured directly in the scenario

Controller settings configured directly in the scenario

Design Decision 01

Time-based trigger

A fixed duration per phase — the default path for most junctions. Engineers set it once and the controller steps through automatically.

Design Decision 02

Position-based trigger

A phase change tied to an actor's relative position in the simulation — synced to the 3D viewport so engineers could visually confirm the trigger point rather than guess at coordinates. Critical for SOTIF and AI Planner edge-case testing.

05 — Test & Iterate

Where the abstraction broke

Usability testing surfaced a new failure mode: a perfectly synchronised controller could still be placed with no relationship to the road's physical stop line. I added a validation layer — road wireframes for lane boundary visibility and a check flagging misaligned stop points — directly from watching engineers debug, not from the original brief.

Traffic light with stop line validation overlay in Genie Scenario Editor

Road wireframe and stop line validation added after usability testing

It reduced configuration errors and made complex intersections genuinely readable — exactly what we needed to trust them at scale.
— Simulation Engineers, Five AI
Next project
Internshala →
← All work