Generative Drive Coach
A driving coach that talks, so new drivers don’t have to look.
- My part
- UX engineer. I owned the experience end to end: research, voice and screen design, the simulator rig, and the studies.
- When
- Nov 2025 to Oct 2026, at Woven by Toyota
- With
- AI/ML engineers, systems integration engineers and data analysts, across Woven, TRI, TMNA and TCNA
- Built on
- CARLA simulator, a Python bridge, React and TypeScript on an iPad HMI, CAN-bus signals

What the studies showed
Real-car retest, a CARLA simulator study, and A/B tests with contextual interviews at Woven by Toyota. Every alert was designed to meet the industry’s 2-second glance-to-comprehension standard.


Approach & Process
- 01
I led the UX for Generative Drive Coach across research, HMI, voice interaction design, prototyping, and validation.
Tap to flipFull notes for End-to-End Ownership:
Owned end-to-end UX for Generative Drive Coach, spanning research, HMI and voice interaction design, prototyping, and validation.
- 02
I scaled a teen driving concept into coaching patterns covering parking, intersections, stop signs, turns, lane changes, and speed management.
Tap to flipFull notes for Reusable Coaching Patterns:
Scaled a single teen-driving concept into a reusable coaching pattern system.
Patterns now cover parking, intersections, stop signs, turns, lane changes, and speed management, all built on the same voice-first coaching logic.
- 03
I grounded designs in CARLA simulation, Vehicle SDK signals, and CAN bus data to test coaching against live vehicle states.
Tap to flipFull notes for Cross-Functional Partnership:
Grounded every design decision in Woven’s engineering stack:
- CARLA: a proprietary driving simulator used to test coaching logic before real-world validation.
- Vehicle SDK: real steering, speed, and sensor signals piped into working prototypes.
- CAN signals: live vehicle bus data that grounded HMI behavior in actual driving state.
- 04
I built prototypes across voice-enabled Figma flows, CARLA simulator scenarios, and a physical steering and pedal rig.
Tap to flipFull notes for Multi-Fidelity Prototyping:
Rapidly translated feedback into working prototypes across Figma, simulator, and physical hardware:
- Voice-enabled Figma flows: fast, low-fidelity concept testing.
- CARLA simulator scenarios: realistic, repeatable driving conditions.
- Physical steering & pedal rig: paired with updated HUD concepts for hands-on validation.
- 05
I ran study plans, voice-frequency tests, and CARLA driving simulations to validate and refine coaching behavior from participant feedback.
Tap to flipFull notes for Independent Research & Validation:
Owned research and validation end to end:
- Study plans designed and run independently, start to finish.
- Voice-frequency studies to tune how often and how loudly the coach should speak.
- Simulated driving studies in CARLA to validate coaching behavior before road testing.
- Iterative refinement of coaching behavior based on participant feedback.
Show full notes
01End-to-End Ownership
Owned end-to-end UX for Generative Drive Coach, spanning research, HMI and voice interaction design, prototyping, and validation.
02Reusable Coaching Patterns
Scaled a single teen-driving concept into a reusable coaching pattern system.
Patterns now cover parking, intersections, stop signs, turns, lane changes, and speed management, all built on the same voice-first coaching logic.
03Cross-Functional Partnership
Grounded every design decision in Woven’s engineering stack:
- CARLA: a proprietary driving simulator used to test coaching logic before real-world validation.
- Vehicle SDK: real steering, speed, and sensor signals piped into working prototypes.
- CAN signals: live vehicle bus data that grounded HMI behavior in actual driving state.
04Multi-Fidelity Prototyping
Rapidly translated feedback into working prototypes across Figma, simulator, and physical hardware:
- Voice-enabled Figma flows: fast, low-fidelity concept testing.
- CARLA simulator scenarios: realistic, repeatable driving conditions.
- Physical steering & pedal rig: paired with updated HUD concepts for hands-on validation.
05Independent Research & Validation
Owned research and validation end to end:
- Study plans designed and run independently, start to finish.
- Voice-frequency studies to tune how often and how loudly the coach should speak.
- Simulated driving studies in CARLA to validate coaching behavior before road testing.
- Iterative refinement of coaching behavior based on participant feedback.
Voice-first UI
Adaptive Voice Coaching
I designed a voice-first coaching layer that delivers real-time, context-aware guidance without adding cognitive load, timed to the exact moment it’s needed: a stop sign, an intersection, a lane change. Voice-frequency studies shaped the interaction model, balancing how often the coach speaks against how much a new driver can actually absorb behind the wheel.

Scenario Coverage
From Teen Driving to a Coaching System
What began as a single concept for coaching teen drivers became a reusable pattern system I built across parking, intersections, stop signs, turns, lane changes, and speed management. Each pattern shares the same voice-first coaching logic, so adding a new driving scenario means composing existing building blocks, not starting from scratch. It’s a system, not a one-off feature.




Design System
A small token system — colors, type, spacing, and radii — kept the coaching HMI visually consistent from early dashboard mockups through CARLA test builds and the physical rig.
Implementation
Parking Assist
Concentric proximity rings under the top-down render

ZStack {
ForEach(rings) { r in
Circle()
.stroke(r.color.opacity(0.35), lineWidth: 2)
.frame(width: r.radius * 2)
}
CarTopDownImage()
}Drive Mode Selector
Segmented Park / Drive toggle

Picker("Mode", selection: $mode) {
Text("Park").tag(DriveMode.park)
Text("Drive").tag(DriveMode.drive)
}
.pickerStyle(.segmented)
.tint(.blue)Speed & Gear HUD
Tabular-figure speed readout

Text(speed, format: .number)
.font(.system(size: 48, weight: .bold))
.monospacedDigit()
.foregroundStyle(.white)
Text(gear)
.font(.system(size: 14, weight: .semibold))
.foregroundStyle(.secondary)Coaching Alert
Dismissible driver-behavior banner

HStack(spacing: 12) {
Image(systemName: "exclamationmark.triangle.fill")
.foregroundStyle(.orange)
Text("Hard braking detected")
Spacer()
Button("Dismiss") { alert = nil }
}
.padding(16)
.background(.orange.opacity(0.12), in: .rect(cornerRadius: 12))Climate Dial
Rotary temperature control

Circle()
.trim(from: 0, to: progress)
.stroke(.blue, style: StrokeStyle(lineWidth: 6, lineCap: .round))
.rotationEffect(.degrees(-90))
.overlay(Text("\(temp)°").font(.title2.bold()))
.gesture(RotationGesture().onChanged { angle in
progress = angle.degrees / 360
})Now Playing
Media playback row

HStack(spacing: 12) {
Image(track.artwork)
.resizable().frame(width: 40, height: 40)
.clipShape(RoundedRectangle(cornerRadius: 8))
VStack(alignment: .leading) {
Text(track.title).font(.subheadline.bold())
Text(track.artist).font(.caption).foregroundStyle(.secondary)
}
Spacer()
Button(action: togglePlay) {
Image(systemName: isPlaying ? "pause.fill" : "play.fill")
}
}Each live component above is a real widget from the Flutter build. Toggle between SwiftUI, Flutter, and Tailwind to see the same pattern implemented natively across platforms.



Vehicle Integration
HUD & In-Vehicle Signals
To make coaching feel native to the car, I partnered with the software-integration and ML teams to ground the HMI in real vehicle state: pulling live signals from the Vehicle SDK and CAN bus into updated HUD concepts, so guidance stays synced to actual speed, position, and steering input, not a simulated approximation.


Simulation & Testing
Validating in CARLA
Working with the ML and research teams, I connected coaching designs to CARLA, Woven’s proprietary simulation platform, to run realistic driving scenarios and pressure-test coaching behavior before it ever touched a real vehicle.

Physical Prototyping
From Figma to the Driver’s Seat
Feedback moved fast, so I kept prototypes moving just as fast: voice-enabled Figma flows for early concept testing, full simulator scenarios, and a physical rig with a real steering wheel and pedal controls. Testing on physical controls surfaced timing and tone issues a screen-only prototype never would catch. Coaching that feels right in Figma can feel intrusive the moment your hands are actually on the wheel.
