Есть такая городская байка: если угадать правильную скорость, то можно проехать десяток светофоров подряд и ни разу не остановиться, поймав «зелёную волну». Водители из разных городов охотятся за этим ощущением десятилетиями. А мы взяли щепотку данных, немного технологической магии, дизайна и превратили эту байку в работающую фичу в навигаторе 2ГИС. 

Меня зовут Даня. Я продуктовый дизайнер команды Транспорт и сейчас расскажу, как мы собирали зелёную волну: от первого скетча до запуска.

Идея «зелёной волны»

Около года назад у нас в навигаторе появились светофоры. И это была не просто иконка на карте — мы показали их как живой объект: с таймерами обратного отсчёта прямо на маршруте. Сколько секунд до зелёного, сколько до красного. Для многих водителей это стало настоящим открытием — поездки по городу стали ощущаться более предсказуемыми. 

Окей, мы научились показывать состояние светофора в моменте. И если у нас есть данные сразу по всей цепочке светофоров на маршруте, значит, можем сделать следующий шаг. Не просто сказать: «Через 12 секунд будет зелёный», а провести водителя по маршруту с минимальным числом остановок. Так зелёная волна стала логичным продолжением того, что мы уже начали.

Главный дизайнерский вызов

На первый взгляд зелёная волна может показаться задачей, про которую думаешь: «Так, ну нужно просто показать скорость на экране, чего тут сложного?». Но на самом деле передо мной стояли два вызова, решить которые нужно было одновременно.

Первый — как донести скорость, не отвлекая водителя.

Внимание в машине — самый дорогой ресурс. Водителю нужно смотреть на дорогу, а не на экран. У навигатора есть доли секунды, чтобы передать сообщение. А значит, никаких «вчитайся и пойми». Информация должна быть представлена максимально контекстно, ёмко и доходчиво.

Второй вопрос — само пространство экрана навигатора.

Интерфейс и так насыщенный: маршрут, манёвры, скорость, камеры. Каждый объект уже борется за внимание. Просто добавить зелёную волну сверху — сломать систему. Особенно тонкая зона — спидометр. В нём уже живут предупреждения о камерах. То есть задача требовала не рисовать на пустом холсте, а вкрутить новый сценарий в уже занятую область, решая ряд конфликтов.

Поэтому истинная суть задачи — встроить новый смысл в уже работающую систему так, чтобы она не сломалась.

Поиск визуального образа

Я начал с базы. Разобрал требования, разложил сценарии и понял, что критериев много, и они тянут в разные стороны. Решение должно быть:

  • крупным — чтобы считывалось,

  • при этом не шумным — чтобы не отвлекало от дороги,

  • и информативным — чтобы было очевидно.

Первая гипотеза сразу была связана со спидометром. Логично: мы ведь тут рассказываем про скорость

Я начал собирать десятки вариантов: числа в кружочках, плашки с иконками и текстом, даже первые наброски прототипа спидометра со стрелкой появились.

Но все это было слишком мелко, плохо считывается, место отнимают. Плюс зона спидометра уже занята предупреждениями о камерах — конфликт. Значит, подход должен быть другим. Или нет?

Дальше я пытался объяснить водителю словами, что происходит и что делать. «Начало зелёной волны. Держите скорость 35–45 км/ч. Конец зелёной волны».

Это работало. Но решение получалось чересчур прямолинейным: место отъедает, сообщение долго считывается, а главное, что оно ощущалось как уведомление. А зелёная волна — это не уведомление, а состояние, в котором ты находишься или нет.

Тогда решил, что нужен диапазон скорости, а не одно число, чтобы водителю не приходилось каждую секунду сравнивать значения. И жить он должен рядом со спидометром — чтобы у водителя оставался контекст: вот моя скорость, вот целевая, сравниваешь мгновенно.

Так родилась плашка с диапазоном, интегрированная в спидометр — та самая, что в итоге пошла в релиз. Но мне всё равно чего-то не хватало. Решение было корректным, но в нём не было эмоции и какой-то графической части, которая бы помогла водителю понять, в какую сторону регулировать скорость. Я думал об этом фоном. И тут случились новогодние праздники. Я начал проходить Zelda на «Свитче» и зацепился за один крошечный элемент интерфейса — индикатор температуры окружающей среды.

В нём не было ни одной цифры. Только шкала и стрелка. И он работал офигенно. Ты сразу понимал, в каком состоянии находишься: жарко тебе, холодно или нормально. 

Это же и есть то, чего мне не хватало. Добавить к плашке с диапазоном настоящий спидометр — со шкалой и стрелкой, как в реальной машине. Знакомая водителю модель. Зелёная зона на шкале — твой целевой диапазон. Стрелка внутри — ты в волне. Вышла — корректируй, и сразу видно, в какую сторону.

Так появилось то, что ушло в продакшн. Два слоя, которые работают вместе. Текстовая плашка даёт точность, аналоговый спидометр с зелёной зоной — ощущение.

Анимация

Моя любимая часть проекта — это то, что превращает зелёную волну из набора плашек в живую систему. Она задаёт эмоцию, создаёт ощущение, что фича правда работает. 

Чтобы добавить живости, мы применили Spring-анимации к появлению и исчезновению плашки с диапазоном скорости. Она не возникает резко, а как будто прилетает на место с упругостью и с весом. Плашка перестаёт быть техническим элементом интерфейса и начинает ощущаться как реальный физический объект.

Нам было важно слегка привлечь внимание водителя при изменении скоростного диапазона. Для этого от плашки зелёной волны мы пускаем зелёные контуры, которые расходятся как будто круги от капли по водной гладе. Это позволяет нам сообщить об изменении, но не дёргать внимание водителя с дороги.

А когда водитель попадает в волну — отвечает уже весь экран. По краям мягко выступает зелёная подсветка. Эта штука работает на уровне ощущения: ты на неё не смотришь, ты её видишь периферией. Будто бы интерфейс говорит: «Всё, ты в потоке, расслабься».

Самое важное в этой работе — не сделать шум. Анимаций много, и они все разного масштаба. По отдельности каждая работает. А вместе могут начать конкурировать: друг с другом, со скоростью, с маршрутом, а в самом плохом случае — с дорогой. Поэтому особый акцент в работе над ними я сделал на то, чтобы подружить анимации друг с другом и заставить их работать как цельный механизм.

Техническая реализация

Самое необычное в этом проекте, что мне пришлось залезть туда, куда дизайнер обычно не залезает — в техническую реализацию.

Для меня было важным, чтобы фича дошла до релиза именно в том виде, в котором существует в моём воображении. А лучший способ сделать это — попробовать реализовать те части, которые вызывают сомнения самому.

Например, нужно было сделать так, чтобы область зелёной волны на шкале спидометра всегда находилась в видимой области и не перекрывалась другими элементами. Для решения этой проблемы я зафиксировал область зелёной волны в одном месте и расписал математику движения стрелки с учётом всех возможных скоростей. Потом собрал решение в коде и проверил — работает так, как нужно.

Также хотелось, чтобы анимация на всех платформах передавала именно те ощущения, которые я закладывал в решение. Когда реализация анимации меня не до конца устраивала, я просил у разработки фрагменты кода, разворачивал среду разработки у себя и докручивал параметры.

И это было прикольно. Дизайнеру не каждый день выпадает шанс так глубоко поковыряться и в технической части работы фичи. А мне выпала такая возможность.

Что дальше

Мы только-только запускаемся и уже готовимся собирать обратную связь. Дальше планов несколько.

Хотим усилить эмоциональную часть сценария — добавить вознаграждение за проезд нескольких светофоров подряд без остановок, со своей графикой и анимацией. Параллельно будем расширять географию: раскатывать фичу на новые города по мере появления данных о светофорах.

Приглашаю попробовать прокатиться с навигатором 2ГИС в Москве или Новосибирске и поймать свою зелёную волну!

Комментарии (12)


  1. max9
    11.06.2026 06:15

    Приглашаю попробовать прокатиться с навигатором 2ГИС в Москве

    странное приглашение, как будто не тестировали совсем и предлагаете нам отвалить телеметрии, что в мск не работает. по опыту - зеленая волна там будет только 1го января в 4 утра.

    и несколько вопросов:

    1) подсчитывалось ли, что зеленая волна для мейнстрима (едущих прямо) ухудшит положение в целом на дорогах? ну, например, 100 машинам прямо, 10 налево, 10 направо. вот эти 20 встали не попав в общую волну и затормозили поток прямо, потому что хвост на поворот вылез за поворотную полосу. так же, по логике, зеленая волна для поворачивающих будет другая и они будут двигаться либо медленней основного потока или пытаться двигаться быстрее, создавая аварийные ситуации

    2) телепорт и невозвращение на позицию после заглушенного GPS уже починили?

    3) ведутся ли работы по передаче этой телеметрии в условный дит москвы, для исправления светофорных циклов? те когда явно видно, что зеленая волна постоянно рвется в одном месте и исправление последнего светофора улучшит ситуацию?


    1. NataliaZheltova
      11.06.2026 06:15

      Привет! Спасибо за вопросы.

      1) Про ухудшение положения на дорогах и «хвосты» на поворотах.

      Наша система работает как персональный помощник водителя и рассчитывает рекомендации строго локально на устройстве. Учёт общего потока трафика не ведётся, и алгоритм не пытается прогнозировать поведение всех участников движения на перекрестке. Задача фичи взять расписание фаз и подсказать конкретному водителю комфортный темп. Если на пути возникает физический затор (например, та самая поворачивающая секция заняла полосу и затормозила движение прямо), водитель снижает скорость по ситуации. В этот момент локальный алгоритм на смартфоне мгновенно фиксирует замедление, адаптируется и пересчитывает подсказку для следующего светофора уже с учетом новой скорости.

      2) Про «телепортацию» стрелки навигатора и заглушенный GPS.

      Поскольку все расчеты диапазона скоростей происходят локально на смартфоне, они напрямую зависят от стабильности и точности GPS. Проблема с «телепортацией» стрелки и долгим возвращением на дорогу после сбоев геопозиционирования — это задача алгоритмов фильтрации координат. Мы постоянно улучшаем этот компонент. В логику «Зелёной волны» со стороны кода уже заложен защитный механизм: при фиксации аномального скачка координат или долгой потери сигнала все данные сбрасываются. Как только стабильный сигнал GPS возвращается, алгоритм мгновенно начинает расчёт «с чистого листа» что исключает выдачу некорректных подсказок.

      3) Про передачу телеметрии в ДИТ Москвы / ЦОДД для исправления светофоров.

      Нет, такие работы не ведутся. Мы изначально выбрали архитектуру On-Device вычислений: все данные о вашей скорости, маршруте и координатах рассчитываются локально на вашем смартфоне и никуда не передаются. Мы не собираем и не аккумулируем телеметрию для анализа городских светофорных циклов. Наша цель дать водителю автономный инструмент, который помогает подстроиться под текущий ритм улиц прямо здесь и сейчас.


  1. SserjIrk
    11.06.2026 06:15

    Отличная огромная работа. Честно снимаю шляпу!
    Но как всегда есть одно "но"...
    На 99% уверен что как всегда все это будет работать без возможности выключить.
    Я понимаю вы увлечены и вам кажется все будут рады вашим фишкам.
    Но это редко бывает так.
    Лично я в итоге ушел с 2ГИС к конкурентам. Хотя мне он на самом деле нравился.
    Классная резкая графика, в отличии от "материальной" склонности других.
    Но слишком много шума, прям раздражающего. Невозможно отключить эти черные баннеры с полосами, невозможно убрать эти красные шапки о скорости.
    Почему не подумаете о сценарии - я уже много-много лет знаю тут каждую кочку на дорогах и каждый своротик, все что мне нужно - данные о пробках и больше не моргайти мне ничем :)


  1. udinhtml
    11.06.2026 06:15

    Отличный дизайн, обязательно протестирую, когда руководство 2gis вернет авторизацию по почте и уберет трекеры vpn.


  1. vichka_dolgova
    11.06.2026 06:15

    Идея сама по себе интересная, но у меня остаётся ощущение, что в реальной поездке это может быть чуть перегружено визуально. Когда ты за рулём, даже полезные подсказки легко начинают конкурировать за внимание с дорогой. И ещё любопытно, как это работает не в идеальном сценарии, а в обычном городском трафике, где постоянно всё меняется и зелёная волна по факту редко бывает стабильной.


  1. egorovastella
    11.06.2026 06:15

    В дороге и так хватает стресса, а тут если ещё и правда помогает не стоять на каждом светофоре, вообще супер идея.


  1. attachet
    11.06.2026 06:15

    "зеленая волна" не легенда, а закон подлости. Одно время я работал на Белорусской, а с работы ездил через Лефортовский туннель и на Волгоградку в область. И постоянно в этом проклятущем тоннеле я стоял в пробке, а всю Волгоградку тыркался по светофорам. И как-то выезжаю с работы - жрать охота, там прям на пути макдачник, беру большой-большой бургер, думаю, сейчас в тоннеле пробка, сожру, все равно стоять. И что б вы думали - пробки нет, а на Волгоградке попал в "зеленую волну", причем прям до дома. Так я его дома в микроволновке разогрел и съел. Одно было утешение - что ехал не полтора часа, а минут 40.

    Хочешь попасть в "зеленую волну" - запланируй что-то сделать на светофоре, лучший способ, никаких приложений не надо. Как-то в снегопад щетки обмерзли, надо бы стряхнуть, но все плотно едет, думаю, сейчас светофоры будут, стряхну лед. Да твою ж мать, объективная реальность! Опять все светофоры зеленые, пришлось перестраиваться и лезть на тротуар с аварийкой.