Реалізація AR-превью NFT-арту в мобільному додатку
NFT-колекціонер купив 3D-анімований арт. Дивитись його в браузері у 2D не цікаво. AR-функція в мобільному додатку дозволяє "повісити" NFT на стіну у своїй кімнаті або розмістити 3D-скульптуру на столі — та побачити, як це виглядає у реальному просторі. Це додає цінність до NFT як фізичного об'єкту колекціонування.
Типи NFT-контенту та AR-рендер
2D NFT (JPEG/PNG/GIF). Найпростіший випадок: створюємо віртуальну раму (SCNPlane з матеріалом), текстуру завантажуємо з IPFS або HTTP URI з метаданих токена. Розміщуємо на вертикальну поверхню через ARPlaneDetection.vertical. Анімований GIF — декодуємо покадрово через CGImageSourceCreateWithData, оновлюємо текстуру за таймером.
3D NFT (glTF/GLB). Все більше проектів випускають 3D-скульптури. На iOS завантажуємо через GLTFSceneKit або конвертуємо в USDZ на льоту через ModelIO → MDLAsset → експорт USDZ. На Android — SceneView (Filament-based) з Sceneform 2.0 нативно підтримує glTF.
Video NFT (MP4/WebM). SCNMaterialProperty приймає AVPlayerItem як вміст текстури — NFT-відео відтворюється прямо на AR-поверхні у реальному часі. Петля, звук опціонально.
Отримання контенту за метаданими NFT
Стандарт ERC-721/ERC-1155 метаданих містить image та опціонально animation_url. Кроки:
- За
tokenIdтаcontractAddressзапитуємоtokenURIчерез JSON-RPC (eth_call) або через Alchemy/Moralis/OpenSea API - Отримуємо JSON метаданих з
image,animation_url,properties - Якщо URI починається з
ipfs://— конвертуємо через публічний gateway (https://gateway.pinata.cloud/ipfs/...) або власну IPFS-ноду - Завантажуємо медіафайл, кешуємо локально
IPFS-завантаження може бути повільним на публічних шлюзах. Рекомендуємо кешувати агресивно: при першому перегляді пишемо в URLCache з великим diskCapacity (500 МБ+).
AR placement для арт-об'єктів
Wall hanging (2D арт). Сканюємо вертикальну поверхню через ARPlaneDetection.vertical. Проблема: ARKit повільніше виявляє вертикальні площини ніж горизонтальні, особливо на гладких стінах. Додаємо manual placement mode: drag по екрану для позиціонування, pinch для масштабу, rotation gesture для кута.
3D скульптура на поверхні. ARPlaneDetection.horizontal + raycast з центру екрану → розміщуємо об'єкт на виявленій площині. ARRaycastQuery замість застарілого hitTest. Снапинг до площини при переміщенні: відслідковуємо ARPlaneAnchor updates, прибиваємо Y-координату об'єкту до площини.
Фото для соцсетей. Ключова функція для NFT-аудиторії. Знімаємо ARView через ARView.snapshot(saveToPhotoLibrary:) (RealityKit) або SCNView.snapshot() (SceneKit). Додаємо UI-оверлей з іменем NFT та колекцією поверх знімку перед збереженням — через UIGraphicsImageRenderer.
Права та watermark
Деякі NFT-проекти обмежують комерційне використання. У AR-контексті важливо не порушувати IP-права при створенні похідного контенту (скриншоти з логотипом додатку не вважаються похідним твором, але краще проконсультуватись з юристом для конкретного проекту).
Терміни: AR-превью для 2D/3D NFT у існуючому Web3-додатку — 3–5 тижнів. Повноцінний AR-галерейний досвід з кастомними рамками, 3D скульптурами та шерингом — 6–10 тижнів. Вартість розраховується індивідуально.







