Разработка AR-примерки мебели: от концепта до App Store

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка AR-примерки мебели: от концепта до App Store
Сложный
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    744
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Стандарт задан IKEA Place, но сегодня пользователи требуют большего: мебель должна стоять строго горизонтально, корректно отбрасывать тени, реалистично взаимодействовать с освещением помещения и не проваливаться в пол на устройствах без LiDAR. Мы реализовали подобные проекты для заказчиков с каталогами до 1000 позиций — и знаем каждую деталь. Наш опыт 5+ лет и более 10 реализованных проектов гарантируют, что диван не провалится в пол, а шкаф станет ровно у стены.

Проблемы без LiDAR

На устройствах без LiDAR ARKit полагается только на монокулярную картинку. Погрешность обнаружения горизонтальных плоскостей может достигать 10 см, а occlusion объектов не работает — виртуальная мебель всегда рисуется поверх реальной. LiDAR решает обе проблемы: точность plane detection снижается до 2 см (в 5 раз точнее), и через sceneReconstruction включается корректное перекрытие. Вот сравнение:

Параметр Без LiDAR С LiDAR
Точность плоскости до 10 см до 2 см
Occlusion нет да
Размещение при слабой текстуре плохо отлично
Время релокализации 5-15 сек 2-5 сек

Точность plane detection в отсутствие LiDAR снижается в 5 раз, что критично для крупногабаритной мебели — шкаф может стоять с заметным наклоном.

Подготовка 3D-моделей для AR: типичные ошибки

Это часто недооцениваемая часть проекта. Каталог из 500 позиций, каждая из которых — GLTF с корректными PBR-материалами, правильными метаданными о реальном размере и точкой привязки строго на нижней плоскости объекта.

Типичные проблемы при получении моделей от клиента:

  • Pivot point в центре объекта — стол летит в воздухе на высоту своего центра
  • Масштаб в сантиметрах вместо метров — диван размером с кухню
  • Текстуры в отдельных файлах (не embedded в GLB) — модель загружается без текстур
  • Y-up vs Z-up несоответствие — стол лежит на боку

Конвертация и нормализация каталога через Blender Python API (batch script) или через Cesium ion / Sketchfab API — зависит от масштаба каталога. ARKit документация рекомендует придерживаться единой системы координат.

Подробнее о подготовке моделей

Для пакетной обработки 500+ файлов используется Blender Python API. Скрипт автоматически:

  • Перемещает pivot point в центр нижней габаритной рамки
  • Приводит масштаб к метрам (1 unit = 1 meter)
  • Конвертирует текстуры в KTX2 для оптимальной загрузки
  • Устанавливает правильную ориентацию осей (Y-up)

Результат — каталог в формате GLB, готовый к импорту в Xcode или Android Studio.

Размещение объекта: от raycast до стабильной позиции

Стандартный pipeline использует ARRaycastQuery, но для мебели есть специфика: объекты крупные, и пользователь хочет точно разместить не в центре комнаты, а у конкретной стены. Это значит:

  1. Обнаружение и горизонтальной, и вертикальной плоскости одновременно
  2. Snapping к стенам — объект «прилипает» на расстоянии 15 см от вертикальной плоскости
  3. Collision detection между объектами — два дивана не должны перекрываться

Collision detection в RealityKit — CollisionComponent с ShapeResource.generateBox(size:). ARView.scene.subscribe(to: CollisionEvents.Began.self) — событие столкновения. При пересечении — визуальная подсветка объекта красным и запрет размещения.

Как автоматизировать конвертацию 500 моделей?

Мы используем batch-скрипт на Blender Python API, который за час обрабатывает до 200 моделей. Это сокращает время подготовки каталога с недель до 2–3 дней. Экономия времени — до 70% по сравнению с ручной правкой каждой модели.

Реалистичное освещение: automatic vs ручное

ARWorldTrackingConfiguration.environmentTexturing = .automatic — ARKit строит HDR environment map из камеры. Это работает, но с задержкой: первые 5-10 секунд объект освещается некорректно. Для мебельного приложения, где пользователь видит объект сразу после размещения — это заметно.

Улучшение: AREnvironmentProbeAnchor с ручным размещением в центре комнаты. Позволяет принудительно обновить environment map по требованию (например, по кнопке «обновить освещение»).

Мультиобъектное размещение и сохранение сцены

Пользователь расставляет несколько предметов, хочет сохранить результат и вернуться позже. ARSession.getCurrentWorldMap(completionHandler:) — сохраняет состояние ARWorldMap с anchor'ами в Data. При следующем запуске: ARWorldTrackingConfiguration.initialWorldMap = savedMap, ARKit релокализуется и восстанавливает позиции объектов.

Работает только в том же помещении при достаточном освещении. Релокализация занимает 3-15 секунд.

Сравнение способов сохранения:

Технология Платформа Время восстановления Ограничения
ARWorldMap iOS 3–15 с Только то же помещение
Cloud Anchors iOS/Android 5–30 с Требуется интернет
Ручное сохранение позиций Обе Мгновенно Нет привязки к реальному миру

Скриншот результата для шаринга — ARView.snapshot(saveToHDR:completion:) + UIActivityViewController.

Что входит в работу

  • Подготовка и конвертация 3D-моделей (до 500 позиций)
  • Интеграция ARKit (iOS) / ARCore (Android) с plane detection, raycast, коллизиями
  • Настройка LiDAR occlusion и scene reconstruction
  • Реализация snapping к стенам и коллизий между объектами
  • Сохранение и загрузка сцены (ARWorldMap / Cloud Anchors)
  • Тестирование на 10+ реальных устройствах
  • Публикация в App Store и Google Play (документация, метаданные)
  • Обучение команды заказчика работе с инструментарием

Сроки

Базовое размещение одного объекта с plane detection — 5-7 дней. Мультиобъектное с collision, snapping к стенам, сохранением сцены — 3-5 недель. Поддержка LiDAR occlusion — плюс 1 неделя. Конвертация каталога моделей оценивается отдельно по объёму. Стоимость рассчитывается индивидуально по итогам анализа вашего каталога и технического задания. Свяжитесь с нами для детального обсуждения вашего проекта — мы подготовим техническое задание и коммерческое предложение. Получите консультацию прямо сейчас.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.