Combiner SFCGAL et Piero pour visualiser des géométries 3D sur le web

By jeudi 22 octobre 2026NewsFR

Dans un précédent article, nous vous évoquions la collaboration entre Soilcloud, Apeiron et Oslandia sur un projet dont le but est la modélisation 3D du sous-sol, dans le domaine géotechnique.

Produire des géométries complexes est un exercice stimulant, mais extrêmement frustrant si aucun outil de visualisation vient assister le modélisateur pour simplement « voir » les géométries produites… Cet article va vous présenter la solution développée dans ce but, et mise en place pour le compte d’Apeiron.

Quel format de fichier retenir pour les données 3D ?

En sortie des traitements géométriques, comme décrit dans notre précédent article, les types de géométries qu’on souhaite pouvoir visualiser sont assez variées :

  • Point
  • LineString
  • PolyhedralSurface
  • Tin
  • Solid

Mais le caractère discriminant est surtout celui de la 3D ! Le format doit supporter les géométries 3D, et le viewer web doit pouvoir les afficher.

En outre, il est préférable de pouvoir conserver l’information sur le système de projection cartographique dans lequel s’inscrivent les coordonnées des géométries. Et enfin, pouvoir appliquer des symbologies différenciées en fonction du type de lithologie à afficher semble incontournable.

Plusieurs formats ont retenu notre attention, sans toutefois réunir la totalité des éléments du cahier des charges :

– Le format GeoJSON, attractif à première vue, mais finalement assez limité vis-à-vis du support des objets 3D, sans compter la limitation à du WGS84.

– Les formats 3D purs, comme PLY ou OBJ, qui permettent d’aller plus loin sur la 3D, mais qui sont plus contraignants en termes de précision numérique, et qui ne permettent pas aussi facilement d’embarquer des métadonnées.

Pour les besoins du projet et de l’appli de visualisation, nous avons finalement opté pour la production d’un format de fichier ad hoc, déclinaison à façon du JSON, avec une extension à façon .litho.json :

{
    « srid »: …,
    « features »: [
        {
            « id »: …,
            « code »: …,
            « geom »: …
        },
        …
    ]
}

Ainsi, nous conservions la praticité des formats type JSON, sans être contraint par les limitations du GeoJSON.

Note : Nous avons appris plus tard l’existence du standard OGC JSON-FG, qui est sorti après nos premières tentatives, une convergence vers ce format est probablement à étudier dans une prochaine étape des travaux menés avec Apeiron !

Piero, une application construite à partir de Giro3D

Pour la visionneuse 3D, nous avons déjà l’expérience et la maîtrise de Giro3D, c’est donc tout naturellement que notre choix s’est porté vers cette solution technique. En particulier, vu les besoins spécifiques de visualisation, l’utilisation de l’application Piero était toute indiquée. Une fois l’étape de modélisation géologique terminée, les solutions web permettent de visualiser et partager les résultats. Le couplage avec la cartographie et les SIG facilite la lecture et la prise de décision.

Page d'accueil de Piero

Page d’accueil de Piero, visionneuse web issue du framework Giro3D

Giro3D et Piero, à l’interface de Three.js et du SIG, ont été particulièrement adaptés pour ce projet. Le choix effectué vis-à-vis du format JSON ad hoc a même donné l’occasion de contributions dans Piero, pour améliorer la configurabilité de l’application ou encore pour l’amélioration du support des coupes transversales.

Les fonctionnalités utiles pour la visualisation des volumes 3D

L’application Piero est configurable, elle supporte des données dans n’importe quel système de projection, on peut modifier :

  • l’extent géographique (n’importe quelle data dans le monde) ;
  • la symbologie des volumes (en particulier, la couleur…).

Pour agrémenter la scène à visualiser, il est également possible d’exploiter des fonds de carte IGN ou OpenStreetMap, et une couche d’élévation IGN (France) ou Mapbox (reste du monde).

Ainsi, une scène dans Piero se construit avec l’ajout de fichiers .litho.json, contenant soit des LineString, soit des PolyhedralSurface, soit des Solid. Chaque fichier correspond à une couche dans le projet Piero, que l’on peut activer ou non, comme l’illustre la vidéo ci-dessous, et dans laquelle on peut distinguer les différentes étapes de construction des volumes 3D.

En plus de ces fonctionnalités essentielles, Piero propose également le tracé de coupes transversales, qui permet d’explorer le coeur du jeu de données, en complément de la navigation classique dans le viewer.

Cross sections Piero

Coupes transversales dans Piero, ou ce qu’il se passe à l’intérieur des volumes

S’il ne fallait retenir qu’un message…

Ce projet démontre pour nous la complémentarité forte entre les outils de traitement de données géoréférencées et les déclinaisons de la visionneuse web Giro3D, ainsi que la simplicité de mise en œuvre sur un cas d’étude concret.

Si cet exemple vous a convaincu, ou tout simplement rendu curieux, si vous cherchez un outil de visualisation adapté à vos données géoréférencées, n’hésitez pas à venir nous en parler, ou à nous écrire à l’adresse infos@oslandia.com pour de plus amples informations !