Реалізація AR-примірки меблів в інтер'єрі

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

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація AR-примірки меблів в інтер'єрі
Складний
~1-2 тижні
Часті запитання

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

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація AR-примерки меблів у інтер'єрі

IKEA Place зробила цей сценарій масовим у 2017-му — з тих пір очікування користувачів виросли. «Просто поставити модель» вже недостатньо: меблі повинні стояти строго горизонтально на виявленій підлозі, коректно відбивати тіні, реалістично взаємодіяти з освітленням приміщення та не «проваліватися» в пол на iPhone без LiDAR.

Підготовка 3D-моделей меблів

Це часто недооцінювана частина проекту. Каталог з 500 позицій, кожна з яких — GLTF з коректними PBR-матеріалами, правильними метаданими про реальний розмір та точкою привязки строго на нижній площині об'єкта.

Типові проблеми при отриманні моделей від клієнта:

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

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

Розміщення об'єкта: від raycast до стабільної позиції

Стандартний pipeline вже описаний в завданні 514, але для меблів є специфіка: об'єкти крупні, та користувач хоче розмістити не в центрі кімнати, а у конкретної стіни. Це означає:

  1. Виявлення та горизонтальної, та вертикальної площини одночасно
  2. Snapping до стін — об'єкт «прилипає» на відстані 15 см від вертикальної площини
  3. Collision detection між об'єктами — два дивани не повинні перекриватися

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

LiDAR: окклюзія та реалістична взаємодія з простором

На пристроях з LiDAR (iPhone 12 Pro+, iPad Pro) вмикаємо ARWorldTrackingConfiguration.sceneReconstruction = .meshWithClassification. ARKit будує dense меш оточення з класифікацією поверхонь (wall, floor, ceiling, furniture, door, window).

Два застосування для примерки меблів:

Occlusion (перекриття): реальні меблі перекривають віртуальний диван, коли користувач заходить за нього. Включається через ARView.environment.sceneUnderstanding.options = [.occlusion]. Без LiDAR — нема коректного occlusion, об'єкт завжди поверх всього.

Розміщення без видимого підлоги: користувач хоче розмістити полицю, але пол перекритий килимом з нейтральною текстурою — SLAM погано визначає. LiDAR-меш підлоги будується незалежно від текстури — розміщення працює.

Освітлення інтер'єру

ARWorldTrackingConfiguration.environmentTexturing = .automatic — ARKit будує HDR environment map з камери. Це працює, але з затримкою: перші 5-10 секунд об'єкт освітлюється некоректно. Для мебельного додатку, де користувач бачить об'єкт одразу після розміщення — це помітно.

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

Мультиобъектне розміщення та збереженням сцени

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

Працює тільки в тому ж приміщенні при достатньому освітленні. Релокалізація займає 3-15 секунд.

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

Терміни

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