Labo2026
Visites 3D des randonnées
Chaque sortie se rejoue en 3D sur le vrai relief, étape par étape, avec la lumière du soleil à l'heure exacte où j'y étais.
- cesiumjs
- webgl
- gpx
- react
Une randonnée, un dossier#
Chaque sortie est un dossier: la trace GPX, les métadonnées, une étape par fichier MDX et les ambiances sonores. Au build, la trace devient une géométrie typée, la région traversée est déduite automatiquement, et chaque étape est placée sur le tracé à sa distance depuis le départ.
- 2025-10-pic-st-barthelemy/
- index.tsxnom, date, météo, notes de terrain
- track.gpxla trace enregistrée
- region.geojsondéduite de la trace au build
- audio/ambiances: vent, oiseaux, orage
- waypoints/une étape par fichier
- 01-premiere-lueurs.mdx
- 04-etang-des-truites.mdx
- 05-pic.mdx
Les photos ne sont pas dans ce dossier: chaque étape déclare celles qu'elle montre, et elles viennent de la photothèque commune.
Le vol d'étape en étape#
La visite vole d'une étape à l'autre au-dessus du vrai relief (imagerie et altitude Esri, sans jeton). Chaque étape a sa photo, son texte et son ambiance sonore. Une vue d'ensemble affiche le tracé complet, le profil d'altitude et des notes de terrain: géologie, faune, flore, histoire du lieu.
La lumière du moment#
Une étape peut porter l'heure à laquelle j'y étais. La position réelle du soleil à cette date et à ces coordonnées pilote alors l'éclairage du terrain: lever, plein jour, heure dorée. La couverture nuageuse du jour vient d'une archive météo et assombrit la scène si le ciel était couvert.
La chasse au lag#
Les vols de caméra saccadaient. Au profiler, la cause était un calcul que Cesium refait sous la caméra à chaque image: sur des tuiles de 130 000 triangles, jusqu'à 230 ms par image figée. Le détail est dans l'article du blog.
D'autres optimisations tiennent la scène fluide: résolution adaptative qui ne change de palier qu'à l'atterrissage, marqueurs HTML positionnés sans aucune lecture de layout, rendu à la demande quand rien ne bouge.