Розробка мобільного AR-додатку для музею
Музейний AR працює в умовах, які не можна повністю контролювати: різне освітлення в залах, вітринне скло перед експонатами, відвідувачі блокують камеру, старі пристрої з обмеженою підтримкою ARKit. Додаток має бути надійним у цих умовах — інакше відвідувачі розчаруються замість того щоб бути вражені.
Правильно спроектований музейний AR — це не просто "дивись на експонат і бачиш анімацію". Це інтеграція з експозицією, навігація по залах, офлайн-функціональність та доступність.
Технічний стек для музейного AR
Два базові сценарії визначають архітектурний вибір:
Image Tracking — спрямуйте на експонат чи табличку, з'явиться доповнюючий контент. ARImageTrackingConfiguration простіше, не вимагає plane detection, працює крізь вітринне скло (якщо відблиски мінімальні). Обмеження: потрібні фізичні маркери чи високотекстуровані зображення.
Location + Plane Detection — навігація по залу з AR-путівниками. ARWorldTrackingConfiguration + ARGeoAnchor (для вулиці) або власна indoor positioning через Bluetooth Beacon / UWB. Складніше, але дає свободу пересування.
Музеї зазвичай використовують гібрид: image tracking для активації контенту біля конкретних експонатів, plane detection плюс beacons для навігації між залами.
Image Tracking: деталі реалізації
Кожний AR-маркер — це ARReferenceImage з параметром physicalSize (реальний розмір зображення в метрах). Неправильний physicalSize → ARKit неправильно оцінює відстань → контент з'являється у невірній позиції.
let referenceImage = ARReferenceImage(cgImage, orientation: .up, physicalWidth: 0.15) // 15 см
ARImageTrackingConfiguration.maximumNumberOfTrackedImages обмежує одночасно відстежувані зображення. Максимум: 4–8 (залежить від пристрою). У залі з 50 експонатів не можна завантажити всі 50 одночасно. Рішення: detection наближення через Bluetooth Beacons — активуємо трекінг лише для найближчих 5–6 експонатів.
Якість маркерів: ARReferenceImage.validate() перевіряє гістограму контрасту. Таблички з дрібним текстом на білому тлі — погані маркери. Рішення: спеціальний QR-код поруч з табличкою (висока унікальність) або нанесення невидимого UV-маркера на раму експоната.
Контент: від 3D-моделей до відео
Музейний AR-контент — це більше ніж 3D-об'єкт. Типовий набір для одного експоната включає:
- 3D-реконструкцію (як виглядав повністю, в кольорі — наприклад, антична статуя)
- Анотації з фактами (hotspots)
- Анімацію (рух механізму, процес створення)
- Відеофрагмент (архівну зйомку, інтерв'ю з куратором)
AR-відео поверх експоната — через VideoMaterial в RealityKit:
let videoURL = Bundle.main.url(forResource: "artifact_story", withExtension: "mp4")!
let player = AVPlayer(url: videoURL)
let videoMaterial = VideoMaterial(avPlayer: player)
planeEntity.model?.materials = [videoMaterial]
player.play()
Офлайн-функціональність критична. У музеях часто немає Wi-Fi в залах або він перевантажений. Усі AR-ресурси мають бути доступні офлайн. Стратегія: при першому запуску (або при підключенні до Wi-Fi) — фонове завантаження контенту для поточної експозиції. BackgroundTasks framework для iOS, WorkManager для Android.
Розмір пакету контенту: 20–100 МБ на експозицію — допустимо для одноразового завантаження перед відвідиною.
Доступність та вікові групи
Музей — громадська установа. Додаток має працювати для аудиторії від 8 до 80 років, на пристроях відвідувачів (не виданих музеєм), включаючи старі пристрої.
Мінімальні вимоги до пристроїв: iOS 14+ (ARKit 4), Android 8.0+ з ARCore. Підтримка iPhone 6s не має сенсу — ARKit вимагає чіп A9 та вище (iPhone 6s — межа підтримки, але plane detection працює погано). Реальний мінімум — iPhone 8 / iOS 14.
Dynamic Type для написів в AR — через UIFont.preferredFont(forTextStyle:). Користувачі з великим системним шрифтом мають бачити читабельні анотації.
Аудіогід як альтернатива AR — для користувачів без сумісних пристроїв або з обмеженим зором: кнопка "Послухати" на кожному експонаті без необхідності AR.
Інтеграція з музейною системою
CMS музею (зазвичай Axiell, MuseumPlus або користувацька) зберігає дані експонатів: інвентарні номери, тексти, зображення. Інтеграція через REST API: при сканування маркера — запит за інвентарним номером → отримуємо текст, мультимедіа. Кешуємо локально.
Для редагування AR-контенту без розробників — admin panel: куратори завантажують 3D-моделі, відео, текст → вони прив'язуються до інвентарного номера → при наступній синхронізації додатка відвідувачи бачать оновлений контент.
Кейс
Історичний музей, 3 тематичні зали, 120 експонатів. Image tracking на QR-кодах поруч з табличками (100 маркерів активні одночасно через lazy loading). Контент: 3D-реконструкції для 30 ключових експонатів, текстові анотації для решти. Інтеграція з MuseumPlus через REST API. Офлайн-кеш при вході в зал через BLE beacons.
Головна проблема: вітринне скло з anti-reflective покриттям спотворювало AR-трекінг. Рішення: маркери винесли на зовнішні бічні поверхні вітрин, а не за скло.
Терміни
| Обсяг | Терміни |
|---|---|
| MVP: 1 зал, image tracking, 20 експонатів | 2–3 місяці |
| Повний додаток: 3+ зали, навігація, CMS-інтеграція | 5–9 місяців |
| Платформа з підтримкою кількох музеїв | 10–16 місяців |
Вартість розраховується після детального обговорення експозиції, вимог до доступності та інтеграцій.







