← Все статьи

AgentiLoop Racing, Prototype III: симулятор F1 в браузере

AgentiLoop Racing — гоночный симулятор с машинами формульного типа, который работает в браузере. Он создан с помощью Agent! на Three.js. В нём физика с частотой 240 Гц, 18 реальных трасс, соперники под управлением ИИ, пит-стопы, составы шин, топливо, ERS и DRS. Играть можно на f1.gokart.games.

AgentiLoop Racing: гоночный болид формульного типа на трассе в браузерном симуляторе.
AgentiLoop Racing, Prototype III. Каждая машина на стартовой решётке — модель RB22 2026 года, перекрашенная в собственные цвета и со своими спонсорскими надписями.

Играйте прямо сейчас: f1.gokart.games. Ничего не нужно скачивать и устанавливать. Нужен браузер с поддержкой WebGL, а играть можно с клавиатуры или с контроллера Xbox (или другого стандартного).

AgentiLoop Racing — гоночный симулятор в стиле F1, написанный на чистом JavaScript и Three.js. Первый коммит, детерминированная модель четырёхколёсного автомобиля, появился вечером 16 октября. Через три дня и 109 коммитов в нём уже гоняется полное поле машин под управлением ИИ на 18 реальных трассах, с пит-стопами, составами шин, топливом, ERS и DRS, звуком мотора, созданным из физики, и камерой из кокпита, в зеркалах которой видны машины позади. Его написал Agent!, по одному небольшому проверенному коммиту за раз.

Сразу честная оговорка, та же, что и в README: это прототип, а не проверенный симулятор Формулы-1. Параметры машины — иллюстративные допущения, а не измеренные данные F1.

Сначала физика

Проект начинался как испытательный стенд для физики, а 3D появилось позже. physics.mjs рассчитывает машину с фиксированным шагом 240 Гц. У каждого колеса своя инерция и своё проскальзывание, а у каждой шины — своя характеристика сцепления от пикового сцепления до скольжения, релаксация угла увода, температура и износ. Подрессоренный кузов кренится, клюёт и проседает под аэродинамической нагрузкой, и это видно на 3D-модели машины. Коробка передач автоматическая или с подрулевыми лепестками, и есть защищённая задняя передача на случай, если вы окажетесь носом к стене.

Силовая установка тоже смоделирована. Топливо учитывается как реальная масса, поэтому по мере сгорания машина становится легче. Гибридная система отдаёт до 120 кВт на скорости выше 100 км/ч, в пределах 4 МДж за круг, и рекуперирует энергию при торможении.

Набор тестов — это встроенный тест-раннер Node и больше ничего: node --test сегодня запускает 158 тестов, и все они проходят. Они проверяют, например, что машина на полном газу никогда не проскакивает сквозь стену и что 3D-модель касается земли только шинами и днищевой планкой.

18 реальных трасс

AgentiLoop Racing: гонка в Монце против соперников под управлением ИИ.
Гонка в Монце. Табло времени, турнирная таблица и мини-карта обновляются в реальном времени во время гонки.

Помимо вымышленной стадионной тестовой трассы есть 18 реальных трасс, от Бахрейна до Майами, включая Монцу, Сильверстоун, Спа и Монако, с конфигурациями, построенными по реальным позициям машин. Всё остальное настроено по реальным данным:

  • Зоны DRS взяты из гоночной телеметрии 2024 года (OpenF1): там, где пилоты на самом деле открывали и закрывали закрылок. В Монако одна зона, на стартовой прямой.
  • Сцепление откалибровано по реальным скоростям в поворотах. На 18 трассах разница между кругами автопилота и самыми быстрыми реальными гоночными кругами сократилась с 17,9 % до 5,8 %. В Монако круг автопилота сократился с 84,2 с до 74,4 с при реальных 73,9 с.
  • Крутые повороты расширены до минимального радиуса 15 м, чтобы машины могли пройти Сент-Девот в Монако.
  • На каждой трассе есть пит-лейн рядом со стартово-финишной прямой, с ограничением 80 км/ч и боксом для каждой машины.
AgentiLoop Racing: гонка в Монако.
Монако, гонка с соперниками под управлением ИИ.

Гонка против ИИ

Реальная трасса открывается в режиме одиночного заезда на время; нажмите O или добавьте ?race к URL, чтобы гоняться с полем соперников. Старт — пять красных огней, по одному в секунду, затем случайная пауза, прежде чем они погаснут. Сдвинетесь раньше времени больше чем на полметра — получите 5-секундный штраф за фальстарт. Пока горят огни, клавиши 1–5 пересаживают вас в машину на соответствующей стартовой позиции.

Машины под управлением ИИ едут по гоночной траектории, тянут друг друга в слипстриме на прямых, выходят из воздушного мешка, используют DRS, если в точке детекции отстают меньше чем на секунду, и ныряют по внутренней траектории на торможении. В коммите, который настраивал обгоны, в гонках на 3 круга на всех 18 трассах число обгонов выросло с 16 до 34, а число контактов сократилось с 8 до нуля. Машина, застрявшая у барьера, включает заднюю передачу, отъезжает по пути, проверенному на отсутствие машин и стен, и возвращается на трассу.

Действуют гоночные правила. Каждый финишировавший должен использовать два состава шин, поэтому нужно один раз остановиться, иначе — дисквалификация. Клавишей B вы просите механиков поставить софт, медиум или хард. Превысите скорость на пит-лейне — получите +5 с.

Каждая сессия начинается на автопилоте, так что машина едет сама, пока вы не возьмёте управление. Нажмите P, коснитесь геймпада или переключите передачу — и машина ваша.

Машина и кокпит

Каждая машина на стартовой решётке использует модель RB22 2026 года от Tyler_Dave (CC BY 4.0, с Sketchfab). При загрузке rb22.mjs перекрашивает её в цвета каждой машины и проецирует на неё спонсорские надписи проекта и гоночный номер. Вблизи каждая часть модели подразбивается и сглаживается, а на расстоянии используются менее детализированные версии.

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

Звук тоже синтезируется из физики: тон работы V6, следующий за оборотами, свист турбины, визг шин от проскальзывания и шум ветра, который нарастает со скоростью.

AgentiLoop Racing: заезд на время в Спа-Франкоршаме.
Заезд на время в Спа.

Смотрите

Попробуйте

Исходный код лежит в AgentiLoop/F1. У него нет зависимостей npm и нет сборщика: Three.js включён в репозиторий, поэтому для локального запуска достаточно выполнить python3 -m http.server в папке. Сам сайт — это Cloudflare Worker, который отдаёт репозиторий как статические файлы.

AgentiLoop Racing — независимый проект, не связанный с Формулой-1, FIA или какой-либо командой. 3D-модели сохраняют собственные лицензии; см. models/CREDITS.md в репозитории.