Skip to content
Apoorv Mahajan

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
Generative Drive Coach
A driving coach that talks, so new drivers don’t have to look.

What the studies showed

100+ → 22
drivers’ research, sorted into driving scenarios
70%
of drivers understood the re-timed voice instructions, a 50% improvement
40%
faster to act on the AI’s guidance, in a 25-person simulator study
80%
of 35 participants preferred a quieter, less talkative AI

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.

Generative Drive Coach hero image 1
Generative Drive Coach hero image 2

Approach & Process

  1. 01

    I led the UX for Generative Drive Coach across research, HMI, voice interaction design, prototyping, and validation.

    Tap to flip

    Full 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.

  2. 02

    I scaled a teen driving concept into coaching patterns covering parking, intersections, stop signs, turns, lane changes, and speed management.

    Tap to flip

    Full 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.

  3. 03

    I grounded designs in CARLA simulation, Vehicle SDK signals, and CAN bus data to test coaching against live vehicle states.

    Tap to flip

    Full 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.
  4. 04

    I built prototypes across voice-enabled Figma flows, CARLA simulator scenarios, and a physical steering and pedal rig.

    Tap to flip

    Full 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.
  5. 05

    I ran study plans, voice-frequency tests, and CARLA driving simulations to validate and refine coaching behavior from participant feedback.

    Tap to flip

    Full 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.

Generative Drive Coach — Voice-first UI

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.

Generative Drive Coach — Scenario Coverage
Generative Drive Coach — Scenario Coverage
Generative Drive Coach — Scenario Coverage
Generative Drive Coach — Scenario Coverage

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

Parking Assist widget: 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

Drive Mode Selector widget: 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

Speed & Gear HUD widget: 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

Coaching Alert widget: 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

Climate Dial widget: 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

Now Playing widget: 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.

Color tokens. A restrained palette tuned for daylight glare, night driving, and quick at-a-glance recognition.
Type and spacing scales. A screen-legible type scale, sized and weighted for a quick glance at speed. Consistent spatial rhythm across dashboard, HUD, and mobile companion surfaces.
Corner radius tokens. Rounded surfaces calibrated to feel tactile on a touchscreen, not decorative.

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.

Generative Drive Coach — Vehicle Integration
Generative Drive Coach — Vehicle Integration

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.

Generative Drive Coach — Simulation & Testing

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.

Generative Drive Coach — Physical Prototyping
  • HomePages
    Overview & Introduction
  • WorkPages
    All 9 Projects & Case Studies
  • AboutPages
    Story, Timeline & How I Work
  • Generative Drive CoachProjects
    Automotive · Case Study
  • Fleet ConsoleProjects
    Automotive · Case Study
  • How2ToProjects
    Spatial · Case Study
  • Omnia BrowserProjects
    Spatial · Case Study
  • Spatial ShowroomProjects
    Spatial · Case Study
  • SynCareProjects
    Health · Case Study
  • SiteLensProjects
    Spatial · Case Study
  • Just Fill it!Projects
    Personal · Case Study
  • Design-crewProjects
    Personal · Case Study
  • EmailActions
    apoorvsm@gmail.com
  • LinkedInActions
    View Profile ↗
↑↓navigate↵selectescclose
⌘K /