Разработка AR-каталога товаров с 3D-моделями

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка AR-каталога товаров с 3D-моделями
Сложный
~2-4 недели
Часто задаваемые вопросы

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

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

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

  • 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-каталога товаров с 3D-моделями

AR-каталог — это когда пользователь выбирает диван на сайте и может поставить его в свою гостиную через телефон, не меняя страницу. Или выбирает кроссовки и примеряет на ноге. Разница между «посмотрел в каталоге» и «увидел у себя дома» — конверсия.

Технически это три связанных задачи: управление библиотекой 3D-моделей, AR-сцена с размещением и взаимодействием, интеграция с существующим каталогом/CMS.

Загрузка и управление 3D-ресурсами

AR-каталог с сотнями позиций не может хранить все модели в бандле приложения. Нужен on-demand download с CDN. Стандартный подход:

  1. Каталог товаров из CMS содержит model_url — ссылку на USDZ (iOS) или GLB (Android)
  2. При открытии карточки товара — проверяем локальный кэш (FileManager)
  3. Если нет — скачиваем в фоне через URLSession.downloadTask, прогресс-бар
  4. После загрузки — инициализируем AR-сцену
func loadModel(url: URL, completion: @escaping (ModelEntity?) -> Void) {
    let cacheURL = cacheDirectory.appendingPathComponent(url.lastPathComponent)
    if FileManager.default.fileExists(atPath: cacheURL.path) {
        completion(try? ModelEntity.loadModel(contentsOf: cacheURL))
        return
    }
    URLSession.shared.downloadTask(with: url) { tempURL, _, _ in
        guard let tempURL else { completion(nil); return }
        try? FileManager.default.moveItem(at: tempURL, to: cacheURL)
        DispatchQueue.main.async {
            completion(try? ModelEntity.loadModel(contentsOf: cacheURL))
        }
    }.resume()
}

Размер модели имеет значение. Мебель: 5–15 МБ USDZ — норма. 50+ МБ — пользователь ждёт и уходит. Оптимизация: TextureConverter для сжатия текстур в ASTC, Draco-сжатие геометрии (через usdz_converter или Blender pipeline).

AR-размещение: от плоскости до взаимодействия

Базовый plane detection → raycast → placement хорошо описан в документации ARKit. В AR-каталоге добавляется:

Масштабирование с сохранением реального размера. USDZ-модели должны иметь корректный масштаб: диван 2 метра длиной должен быть 2 метра в AR. Если размер в метаданных CMS есть — применяем через ModelEntity.scale. Если нет — задаём через конфигурацию модели. Пользователь не должен масштабировать сам — это разрушает ощущение «реального» размера.

Вращение одним пальцем. EntityRotationGestureRecognizer в RealityKit — самый простой путь. Но вращение только по оси Y (вертикальной): мебель не наклоняется, а поворачивается вокруг себя. Фиксируем ось через constraints:

entity.components[PhysicsMotionComponent.self] = PhysicsMotionComponent()
// Rotation constraint — только Y

Смена варианта/цвета без перезагрузки модели. Диван доступен в 5 цветах. Загружать 5 моделей — дорого. Правильно: одна геометрия, разные материалы. В USDZ материалы можно менять через ModelComponent.materials:

var materials = entity.model?.materials ?? []
materials[0] = SimpleMaterial(color: .init(selectedColor), isMetallic: false)
entity.model?.materials = materials

Для PBR-материалов с текстурами — PhysicallyBasedMaterial с загружаемыми текстурами.

Интеграция с каталогом

Типичный сценарий: Shopify, WooCommerce или кастомная CMS на бэкенде. Добавляем custom поле ar_model_url к товару. На мобильном клиенте — кнопка «Смотреть в AR» появляется только если поле заполнено.

Для управления 3D-контентом без программистов — простая CMS или admin panel с загрузкой USDZ/GLB файлов и автоматической оптимизацией через сервер (конвертация, сжатие, загрузка на CDN). Это убирает зависимость от разработчика при добавлении новых товаров.

Кейс из практики

Интернет-магазин мебели, 2000+ позиций. Приоритет: 100 топовых SKU покрыть AR-моделями. Этапность: сначала iOS (ARKit + USDZ), через 2 месяца — Android (SceneViewer + GLB). Конвертация из FBX-моделей поставщика в USDZ/GLB — автоматизированный пайплайн через Blender Python scripts + reality-converter CLI. Время обработки одной модели — 3–7 минут.

Главная нетехническая проблема: 3D-модели от поставщиков были в произвольных единицах (1 unit = 1 дюйм у одного, 1 сантиметр у другого). Написали скрипт нормализации масштаба с валидацией реальных размеров из спецификации товара.

Сроки

Функциональность Сроки
Базовый AR-viewer для одного товара 1–2 недели
AR-каталог с кэшированием и вариантами цветов 4–6 недель
Полная система с CMS, аналитикой и iOS+Android 3–5 месяцев

Стоимость рассчитывается индивидуально с учётом объёма каталога и необходимости конвертации моделей.