← Phase 5 / Réalité Augmentée & Spatiale
🥽 Module 29

Réalité Augmentée & Spatiale

Overlay AR caméra pour voir les noms de lieux, scores de sécurité et infos restaurants en pointant son téléphone, navigation AR piéton avec flèches directionnelles, traduction AR de panneaux & menus, et expérience immersive Apple Vision Pro pour explorer des destinations en 3D.

ARKit 6ARCorevisionOSWebXRMapbox 3DML Kit
14
User Stories
4 sem.
S42–S43
ARKit 6
iOS AR Engine
WebXR
MetaQuest 3
User Stories — M29

📋 14 User Stories — AR & Spatial

US29.1 En tant qu'utilisateur iOS, je pointe ma caméra vers un lieu et vois son nom + score sécurité en AR overlay
US29.2 En tant qu'utilisateur Android, j'ai la même expérience AR via ARCore (parité iOS/Android)
US29.3 En tant qu'utilisateur, je vois le score sécurité du quartier affiché directement en AR sur ma vue caméra
US29.4 En tant qu'utilisateur, je pointe un restaurant et vois sa note, prix moyen et spécialités en AR
US29.5 En tant qu'utilisateur, je pointe un panneau ou menu étranger et il est traduit instantanément en AR (ML Kit + DeepL)
US29.6 En tant qu'utilisateur, je navigue à pied avec des flèches directionnelles AR superposées à ma caméra
US29.7 En tant qu'utilisateur, le mode nuit AR adapte automatiquement la luminosité des overlays
US29.8 En tant qu'utilisateur Vision Pro, j'explore une destination en 3D avant de réserver (spatial computing)
US29.9 En tant qu'utilisateur Vision Pro, je vois mon itinéraire sous forme de timeline 3D interactive
US29.10 En tant qu'utilisateur Vision Pro, je visualise une visite virtuelle d'un lieu avant de réserver
US29.11 En tant qu'utilisateur MetaQuest 3, j'accède à une app WebXR compagnon NOMIIQ (180°/360° lieux)
US29.12 En tant que créateur, j'uploade des photos/vidéos 180° ou 360° d'un lieu pour l'expérience XR
US29.13 En tant qu'utilisateur Vision Pro, je rejoins une réunion Mixed Reality co-voyage avec d'autres participants
US29.14 En tant que système, les tiles 3D Mapbox sont chargés de manière lazy (LOD) pour éviter les lags AR
Architecture

🥽 Architecture AR & Spatial Computing

📱 AR Mobile (iOS + Android)

ARKit 6 (iOS) Détection plans, anchors, LiDAR sur Pro — placement overlay précis
ARCore (Android) Parité features — API augmented faces + environmental understanding
ML Kit (OCR) Traduction temps réel panneaux → DeepL pour la traduction finale
Mapbox 3D Tiles Bâtiments 3D + chargement LOD pour AR navigation urbaine
SceneKit / RealityKit Rendu 3D léger overlay iOS — annots lieux, flèches nav

🥽 visionOS & MetaQuest

RealityKit (visionOS) App native Vision Pro — scènes 3D lieux destinations
Reality Composer Pro Création scènes 3D destinations (USDZ assets)
SharePlay (visionOS) Co-présence spatiale — réunion Mixed Reality co-voyage
WebXR API MetaQuest 3 browser — expérience XR sans app store
360° Photos API Upload équirectangulaire → rendu VR immersif
📐 Performances AR cibles
Frame rate AR : 60fps stable (iPhone 14+)
Temps chargement overlay : < 300ms
Précision tracking ARKit : < 2cm drift/10m
Consommation batterie : +15% max vs caméra normale
Stack Technique

🛠️ Technologies M29

📱 AR Mobile

ARKit 6 + LiDAR
iOS 17+ — tracking précis + depth map
ARCore 1.4+
Android — Sceneform deprecated → custom renderer
ViroReact (RN)
Bridge React Native → ARKit/ARCore unifié
ML Kit Text Recognition
OCR temps réel panneaux/menus (on-device)
DeepL API
Traduction texte OCR → langue préférée user

🗺️ Spatiale & 3D

Mapbox 3D Tiles API
Buildings 3D + terrain pour AR urbaine
RealityKit (visionOS)
Rendu 3D spatial Apple Vision Pro
Reality Composer Pro
Authoring scènes USDZ destinations
WebXR Device API
MetaQuest 3 + browser XR compatible
Three.js (WebXR)
Rendu 3D browser pour MetaQuest

☁️ Backend AR

Cloudflare R2
Stockage assets 3D USDZ + 360° photos
AWS Lambda@Edge
Serving tiles 3D avec edge caching (< 100ms)
PostGIS
Requêtes spatiales pour overlays AR (nearest POIs)
Cloudflare Images
Compression + resize photos 360° (WebP/AVIF)
Redis GEO commands
Index géospatial temps réel POIs autour user
Schémas Base de Données

🗄️ Nouvelles Tables M29

🗄️ ar_place_anchors
id UUID PRIMARY KEY
place_id UUID → places
anchor_type ENUM(building, restaurant, safety_zone, poi)
lat DECIMAL
lng DECIMAL
altitude_m FLOAT
display_data JSONB — {name, score, price, cuisine, ...}
asset_url TEXT — USDZ 3D model (optional)
is_active BOOLEAN DEFAULT true
updated_at TIMESTAMPTZ
🗄️ xr_media
id UUID PRIMARY KEY
place_id UUID → places
creator_id UUID → users
type ENUM(photo_360, video_360, photo_180, usdz_model)
url TEXT — Cloudflare R2 URL
thumbnail_url TEXT
resolution TEXT — ex: 8192x4096
file_size_mb FLOAT
views_count INT DEFAULT 0
created_at TIMESTAMPTZ
API REST — M29

🔌 Endpoints AR & Spatial

GET /api/v1/ar/anchors POIs AR autour d'une position (query: lat, lng, radius) public
GET /api/v1/ar/anchors/:id Détail d'un anchor AR (display_data complet) public
POST /api/v1/ar/translate Traduire du texte OCR (body: text, target_lang) 🔒
GET /api/v1/ar/navigation Étapes navigation AR vers destination (query: to_lat, to_lng) 🔒
GET /api/v1/xr/media Assets XR (360°, USDZ) pour un lieu (query: place_id) public
POST /api/v1/xr/media Uploader un asset 360°/USDZ (multipart) 🔒
GET /api/v1/xr/media/:id Détail asset XR (résolution, type, views) public
DELETE /api/v1/xr/media/:id Supprimer son asset XR 🔒
GET /api/v1/ar/anchors/nearby Anchors géolocalisés (PostGIS < 500m) public
POST /api/v1/ar/anchors Créer un anchor custom (admin / partenaire) 🔒
PATCH /api/v1/ar/anchors/:id Mettre à jour display_data anchor 🔒
Critères d'acceptation

✅ Definition of Done — M29

AR overlay iOS (ARKit 6) : 60fps stable sur iPhone 14 standard — confirmé sur 5 devices
AR overlay Android (ARCore) : parité features iOS, 30fps minimum sur flagship 2023+
Traduction AR panneaux < 1s end-to-end (OCR ML Kit + DeepL) mesurée sur 100 tests
Navigation AR : précision < 5m en milieu urbain comparée à navigation Mapbox standard
Vision Pro : app TestFlight fonctionnelle, 10 destinations 3D disponibles au lancement
WebXR MetaQuest 3 : accès navigateur sans app store, 360° viewer opérationnel
API /ar/anchors < 100ms P95 pour requête géospatiale (PostGIS index validé)
Upload asset 360° : pipeline Cloudflare R2 + compression AVIF fonctionnel < 30s
KPIs M29

🎯 Objectifs de Succès

1M+
Utilisateurs AR actifs à 6 mois
60fps
Frame rate AR stable iPhone 14+
< 300ms
Temps chargement overlay AR
10k+
Assets 360° uploadés par créateurs
5min
Session AR moyenne / utilisateur
50k+
Translations AR panneaux / jour
4.6★
Note feature AR in-app
1k+
Vision Pro sessions/semaine