Как инженер-строитель создал AR-приложение с 3D-аватаром с помощью ИИ

Владислав по образованию и профессии строитель: больше 12 лет он работает инженером на стройке и никогда не занимался разработкой программного обеспечения. Однако несколько лет его не отпускала идея научить камеру смартфона распознавать человека и заменять его в кадре полноценным 3D-персонажем.
Летом 2025 года автор узнал о возможностях современных ИИ-ассистентов и решил попробовать создать проект самостоятельно. К октябрю он начал активно использовать Claude и другие модели внутри Cursor, поручая им подготовку инструкций, объяснение технологий и написание части кода. Через год работы приложение Simulatra вышло в App Store и Google Play.
Почему трекинг должен работать на смартфоне
На старте у проекта было несколько принципиальных требований. Приложение должно было работать автономно, без отправки видеопотока на серверы: это снижает задержку, не требует постоянного подключения к интернету и уменьшает стоимость эксплуатации. Также планировалась одновременная обработка тела, лица и рук, а визуальная часть должна была быть полностью трёхмерной — без наклеек, изображений и имитации 3D.
Сначала разработчик протестировал несколько открытых решений для компьютерного зрения: MediaPipe, MoveNet, TensorFlow и YOLO. Размеры моделей варьировались примерно от 1 до 20 МБ, а каждую из них приходилось проверять на практике, проходя перед камерой смартфона. В итоге в финальный пайплайн вошли инструменты MediaPipe: они обеспечили подходящее сочетание скорости и плавности на мобильном устройстве.
От идеи распознавать любые объекты — животных, автомобили и деревья — пришлось отказаться. Стабильный локальный захват произвольных объектов в реальном времени всё ещё остаётся сложной задачей для мобильного железа и AR-технологий. Поэтому разработчик сосредоточился на человеческой анатомии.
От координат нейросети к движению аватара
Самой трудоёмкой частью проекта стала привязка 3D-персонажа к данным трекинга. Нейросеть выдаёт сырые координаты, которые могут быть перевёрнутыми, зеркальными или смещёнными относительно экрана и камеры. Их нельзя напрямую передать в 3D-движок: персонаж будет двигаться неправильно.
Для исправления координат пришлось написать множество преобразований, фильтров сглаживания и дополнительных алгоритмов. Тестирование проходило в ручном режиме и заняло весну и лето. Переломным моментом стал первый стабильный результат, когда виртуальный персонаж начал синхронно повторять движения человека перед камерой.
Почему разработчик выбрал Unity
Первый прототип создавался в Android Studio. За месяц удалось собрать базовую архитектуру, а затем началась интеграция нейросетей. Но при добавлении полноценных 3D-моделей, скелетной анимации и постоянной обработки видеопотока нативный мобильный стек оказался слишком неудобным.
В декабре проект перенесли на игровой движок. Unreal Engine оказался слишком тяжёлым для задачи: размер сборки начинался примерно от 150 МБ, тогда как сборка на Unity обычно занимала 30–60 МБ. Кроме того, для мобильного AR было меньше подходящих примеров и документации. В итоге Unity стал основой проекта благодаря производительности, кроссплатформенности и возможности собирать приложение для Android и iOS из общей кодовой базы.
Для работы с дополненной реальностью используются ARCore на Android и ARKit на iOS. Из-за требований к производительности старые устройства пришлось исключить: комфортная работа приложения ориентирована на смартфоны, выпущенные после 2021–2022 годов.
Персонажи, риг и итоговый пайплайн
Бесплатные 3D-модели из открытых источников не подошли для проекта. У них различались названия костей, ориентация осей и настройки рига, поэтому персонажи деформировались, а конечности выворачивались. Кроме того, коммерческое использование известных героев из фильмов, игр и мультфильмов ограничено авторским правом.
В результате разработчик заказал модели у профессионального 3D-художника и подготовил подробное техническое задание на десять страниц. В нём были описаны требования к скелету, костям и осям. После этого персонажей удалось без существенных доработок подключить к системе детекции. К августу в приложении появились интерфейс, настройки, меню выбора аватаров и калибровка.
Рабочая схема выглядит так: камера смартфона передаёт изображение в локальный слой компьютерного зрения, MediaPipe определяет положение тела и частей лица, а Unity получает координаты в реальном времени. Затем драйвер, шейдеры деформации и скелетная анимация преобразуют эти данные в движения 3D-модели, которые отображаются на экране.
Производительность и ограничения Android
На смартфоне QOO 11S с процессором Snapdragon 8 Gen 2 приложение показывает стабильные 32–35 кадров в секунду. При этом корпус заметно нагревается через 5–10 минут: нейросетевой трекинг и графический рендеринг постоянно работают параллельно. На iPhone 16 Pro Max с чипом A18 Pro результат выше — около 56–60 кадров в секунду благодаря оптимизации Core ML и графического API Metal.
Заявленные минимальные требования — Android 9 или iOS 15 и 4 ГБ оперативной памяти. Для более комфортной работы рекомендуются Android 11 или iOS 16, а также 6 ГБ оперативной памяти и больше.
Отдельной проблемой стала совместимость китайских версий Android-смартфонов. Даже если модель указана в списке поддерживаемых AR-устройств, на ней может не быть официальной сертификации и сервисов Google Play для AR. Именно с такой ситуацией автор столкнулся на китайской версии QOO 11S: необходимые сервисы пришлось устанавливать вручную. Перед покупкой Android-смартфона для подобных приложений рекомендуется заранее проверять официальную поддержку AR.
Публикация и планы развития
Создание аккаунта разработчика из России оказалось отдельной задачей из-за банковских ограничений, проверок документов и требований к адресу регистрации. В итоге техническим сооснователем проекта стал знакомый системный администратор, живущий в другой стране. Он взял на себя публикацию приложения и помогает с серверной инфраструктурой для будущих функций.
В App Store Simulatra вышло 19 октября, а в Google Play — 31 октября. Для магазина Google потребовалось обязательное 14-дневное закрытое тестирование с участием 12 тестировщиков. В App Store приложение одобрили после одного отклонения, связанного с описанием функциональности.
На старте приложение распространяется бесплатно, не использует серверы и не требует подписки. Пользователь может выбрать аватара, двигаться перед камерой, танцевать, прыгать, шевелить пальцами, записывать результат и делиться им. В следующих версиях разработчик планирует добавить маркетплейс 3D-моделей, подписку Pro, загрузку собственных персонажей, сетевой стриминг в Unity, Unreal Engine и Blender, а также экспорт анимации в GLB, FBX и BVH.
История Simulatra показывает, что ИИ-ассистент способен существенно снизить порог входа в сложные технические проекты. При этом он не отменяет инженерную работу: выбор архитектуры, многочисленные тесты, оптимизацию, настройку рига, проверку совместимости устройств и подготовку продукта к публикации всё равно пришлось выполнять вручную.


