Py3dtiles


Un outil ligne de commande et une API pour générer des tuilages 3DTiles

Présentation

Py3dtiles est une bibliothèque et un outil en ligne de commande Python permettant la création et la manipulation de jeux de données au format 3Dtiles depuis différents types de données.

Types de données supportées

Pour l’instant, Py3dtiles supporte:

  • les nuages de points au format: las, laz (avec laszip ou lasrs), xyz, ply.
  • les géométries au format wkb (et donc pouvant potentiellement venir de PostGIS).

Il est capable de générer des tilesets avec du contenu en b3dm ou en pnts

Fonctionnalités

Py3dTiles peut reprojeter les données nuage de points avant de générer les Tileset. Il est efficace en gestion de la mémoire, ce qui permet de convertir des nuages de très grande taille (nous avons testé jusqu’à 1To).

Le processus de conversion des nuages de points est parallélisé pour être le plus efficace possible.

Travaux dans le cadre du projet IASBIM

Refactoring

Les fonctions de conversion de nuage de points et de géométrie étaient essentiellement disjointes dans le code. Pour des raisons de maintenance et afin de profiter de la même efficacité pour les wkb que pour les points, il faut fusionner les deux méthodes, ce qui implique de refactorer le code.

Intégration des travaux du Liris

L’opensource a l’avantage de permettre à plusieurs parties de participer à l’évolution d’un même outil. Le LIRIS durant les dernières années à fait des évolutions sur un dépôt à part.

Nous avons commencé le travail de fusion de leurs travaux dans le dépôt de code principal.

Support des sources de données IFC

C’est bien sûr l’objectif principal du projet IASBIM en ce qui concerne Py3dtiles : le support et la conversion des données IFC en 3dtiles !

Cette implémentation va toucher 3 points essentiels:

  • le support du format d’entrée. Ce point est loin d’être trivial car il n’est pas question à court terme d’implémenter un support IFC complet dans la librairie. Nous allons donc utiliser une librairie externe comme IFCOpenShell. Ce travail consistera principalement à fusionner les avancées du Liris.
  • Le tuilage: l’IFC est structuré différemment d’un nuage de points. Il s’agira de proposer un tuilage pertinent à la fois pour la visualisation et les besoins métiers des utilisateurs. Une méthode par défaut sera implémentée, ainsi que des façons de la personnaliser.
  • la génération du Tileset: il faudra sûrement générer du i3dm pour éviter de définir des dizaines de fois le même objet 3D. Le support de ce format devra être ajouté dans Py3dtiles.

References