PROJET D’ENTREPRISE

Dunelm : expérience AR « View-in-Room » prise en charge par LiDAR

Expérience de visualisation dans la pièce basée sur ARKit/ARCore avec Unreal Engine C++ ; Occlusion LiDAR, PBR et pipeline de données produit.

Unreal EngineC++ARKitARCoreLiDARDepth OcclusionMobile RenderingPBR MaterialsPlane Detection3D Asset PipelineREST APIE-commerce Integration
Expérience de visualisation dans la pièce AR prise en charge par LiDAR pour Dunelm

IMPACT D’INGÉNIERIE

Périmètre et résultats mesurables

Plateformes AR
ARKit + ARCore

Expérience commune de visualisation dans la pièce pour iOS et Android.

précision spatiale
Obstruction LiDAR

Placement plus crédible avec des objets du monde réel.

flux de produits
Placement et mise à l'échelle

Le flux qui relie l'expérience AR aux données des produits de commerce électronique.

Résumé rapide

  • Rôle : Co-fondateur et développeur principal
  • Durée : septembre 2017 - janvier 2021
  • Plateformes : iOS, Android
  • Moteur : Unreal Engine (C++)
  • Frameworks AR : ARKit, ARCore
  • Distinguer : occlusion basée sur la profondeur LiDAR + couche d'abstraction AR unifiée

Chronologie (2017-2022)

  • 2017 : MVP/PoC et premières démos clients.
  • 2018-2020 : productisation, partenariat Dunelm, pipeline d'actifs et flux de déploiement AR.
  • 2021 : dernières améliorations et passation de pouvoir (clôture de ma contribution active).
  • 2022 : Lancement client Dunelm (après ma contribution active).

Problèmes et contraintes

  • Nécessité d'une échelle précise et d'un placement réaliste pour réduire les taux de retour.
  • Limites de performances et différentes capacités des capteurs sur les appareils mobiles.
  • Différences API ARKit/ARCore et cohérence multiplateforme.
  • Rendre le grand catalogue de produits AR-ready.
  • Intégration e-commerce et actualité des données.

Résumé de la solution

J'ai conçu une couche d'abstraction unifiée pour ARKit/ARCore en créant l'expérience de visualisation dans la pièce sur Unreal Engine. Le réalisme visuel et la compatibilité avec les flux de commerce électronique ont été obtenus grâce à l'occlusion en profondeur prise en charge par LiDAR, aux matériaux PBR et au pipeline de données de produits.

L'architecture en un coup d'œil

  • Couche de session AR unifiée : regrouper les différences ARKit/ARCore dans une seule API.
  • Transformation de coordonnées et normalisation de la détection de plan.
  • Pipeline de rendu : matériaux PBR, adaptation ombre/lumière, LOD.
  • Flux de données produit : API REST -> cache -> streaming -> scène AR.

Occlusion LiDAR (basée sur la profondeur) + stratégie de repli

J'ai appliqué une occlusion par pixel à l'aide d'une carte de profondeur sur des appareils iOS pris en charge par LiDAR et je me suis assuré que les objets réels masquaient correctement les produits virtuels. Sur les appareils non LiDAR, j'ai utilisé un flux de repli plus léger avec une occlusion basée sur le plan et une estimation de la profondeur.- Carte de profondeur -> shader d'occlusion -> masque stable avec filtrage temporel.

  • Repli non-LiDAR : occlusion plane + lissage des bords simplifié.
  • Compromis : réalisme élevé par rapport au coût de la batterie/performance.

AR multiplateforme (ARKit + ARCore)

J'ai normalisé les différents systèmes de coordonnées d'ARKit et d'ARCore avec des transformations d'exécution pour fournir un flux de positionnement et de mise à l'échelle unique. La parité a été préservée avec l'initialisation de la session et le contrôle des fonctionnalités en fonction des capacités de l'appareil.

Données produit et pipeline d'actifs

Les informations sur le produit et les ressources 3D ont été récupérées via l'API REST ; Un démarrage rapide était visé avec la couche de cache et le streaming progressif. Les modèles 3D sont optimisés pour les mobiles avec LOD, compression de texture et standardisation des matériaux PBR.

Performances et assurance qualité

  • Tests de profil et de régression sur matrice d'appareils iOS/Android.
  • Ajustements du LOD et de la qualité des textures en fonction du budget GPU/CPU.
  • Tests limites de consommation de la batterie et d'étranglement thermique.

Impact/Résultats

  • Adoption de l'application - 100 000 téléchargements (3 premiers mois) - source : App Store Connect/Play Console (vérifiable via les analyses internes de Dunelm).
  • Augmentation des conversions - +35 % - période : [X], référence : sessions AR par rapport aux sessions non-AR - source : GA4/Firebase (peut être ajouté si vérifié).
  • Réduction du taux de retour - -40% - période : [X], référence : pré-AR - source : BI interne de Dunelm (peut être ajoutée si confirmée).
  • Augmentation de la durée de la session - +50 % - période : [X] - source : analytique (peut être ajoutée si vérifiée).

Compromis clés

  • Choix d'Unreal Engine : augmentation de la qualité visuelle, mais au détriment de l'optimisation mobile.
  • Qualité par rapport à la couverture uniquement LiDAR : équilibre avec une solution de repli non LiDAR.
  • Ressources haute résolution vs ouverture rapide : streaming + LOD.
  • Réalisme vs consommation de batterie : limites du shader et du post-traitement.

##FAQ### Comment fonctionne l'occlusion LiDAR ? L'occlusion par pixel est appliquée via la carte de profondeur ; les objets réels cachent avec précision les objets virtuels.

Que se passe-t-il avec les appareils non LiDAR ?

Le réalisme de base est préservé grâce à l'occlusion basée sur le plan et à l'estimation de la profondeur atténuée.

Comment la précision de la balance a-t-elle été obtenue ?

Les dimensions du produit sont extraites de l'API REST avec des valeurs métriques et appliquées exactement à la scène.

Comment les performances ont-elles été mesurées ?

Les FPS, la mémoire et les temps de chargement ont été suivis à l'aide d'outils de profil et de tests matriciels de périphériques.

Comment le pipeline d'actifs a-t-il été construit ?

Les modèles de produits ont été optimisés avec la compression de texture LOD + et chargés en streaming progressif.

Comment se sont déroulés la télémétrie et le suivi de la qualité ?

Les journaux d’erreurs, de performances et d’utilisation ont été surveillés régulièrement avec une segmentation des appareils/systèmes d’exploitation.

Comment les différences ARKit/ARCore ont-elles été gérées ?

Un flux unique a été obtenu grâce à la couche d'abstraction unifiée et au contrôle des fonctionnalités d'exécution.

Projets connexes

Mentions légales du projet

  • Entreprise/Client : Dunelm (Royaume-Uni)
  • Entreprise : Lindow Labs (co-fondateur)
  • Rôle : Co-fondateur et développeur principal
  • Durée : septembre 2017 - janvier 2021
  • Plateformes : iOS, Android
  • Moteur : Unreal Engine (C++)
  • Frameworks AR : ARKit, ARCore, LiDAR
  • Lancement : juin 2022 (côté Dunelm ; après ma contribution active)
  • Lieu : Londres, Royaume-Uni / Istanbul, Turquie (à distance)

Appliquer des décisions d’architecture similaires à votre produit — écrivez-moi.