py3dtiles est un outil Python qui permet de convertir des données géospatiales 3D issues de formats variés vers le standard 3D Tiles, afin de les visualiser facilement et efficacement dans des applications web 3D temps réel.

Il peut être utilisé via une ligne de commande ou intégré directement dans une application grâce à son API.

La version 12 de py3dtiles est sortie fin 2025, et elle marque une étape importante pour le projet. Depuis notre dernier article (à l’époque de la v7), de nombreuses évolutions ont vu le jour. Il est grand temps de rattraper notre retard avec un tour d’horizon des principales nouveautés de cette version.

Fonctionnalités

Le support des fichiers IFC : une avancée majeure 🏗️

La fonctionnalité phare de cette v12 est le support de la conversion des fichiers IFC, un format incontournable dans le monde du BIM ! Concrètement, cela signifie que vous pouvez désormais convertir vos maquettes de bâtiments complètes en 3D Tiles, prêtes à être visualisées dans un navigateur web.

Convertir des données IFC en 3DTiles vous permettra de visualiser de (très) grands volumes de données, grâce à la gestion multi-échelles et le tuilage. Des IFC de plusieurs Giga-octets ne sont plus un blocage pour la visualisation web !

Ce travail s’appuie sur des bases solides issues du projet open-source du Liris py3dtilers, tout en améliorant les fonctionnalités, la robustesse et les performances.

Un bâtiment converti grâce à py3dtiles

Un bâtiment converti grâce à py3dtiles

Les fonctionnalités nouvelles:

    • Rendu plus fidèle : les matériaux sont désormais correctement pris en charge, y compris lorsque plusieurs matériaux sont appliqués à un même objet.
La vitre de la porte est maintenant transparente, grâce au support des matériaux multiples

La vitre de la porte est maintenant transparente, grâce au support des matériaux multiples

  • Coordonnées géographiques gérées : les systèmes de coordonnées peuvent être reprojetés automatiquement pour s’adapter à vos usages.
    Un ifc reprojeté, permettant de le visualiser dans son contexte géographique

    Un ifc reprojeté, permettant de le visualiser dans son contexte géographique

L’effort a été également porté sur la performance :

  • Moins de mémoire utilisée : la conversion est bien plus légère qu’auparavant, même pour des fichiers volumineux. Nous restons tributaires des librairies natives sous-jacentes, donc l’usage mémoire ne sera cependant pas inférieur à la taille du fichier d’entrée.
  • Conversions plus rapides : la transformation des données peut tirer parti de plusieurs cœurs du processeur, pour une réduction significate des temps de traitement.

Combinés ensembles, ces amélioration peuvent accélérer le temps de conversion d’un facteur 10 dans certains cas !

L’organisation des niveaux de détail suit pour l’instant la structure logique des fichiers IFC (bâtiments, étages, pièces), mais des travaux sont en cours pour proposer des versions simplifiées adaptées à l’affichage à grande échelle.

Des nuages de points plus riches ☁️

La conversion des nuages de points continue elle aussi de s’améliorer.

Il est maintenant possible d’intégrer des données supplémentaires (comme l’intensité ou la classification) directement dans les fichiers convertis. Ces informations peuvent ensuite être exploitées par les visualiseurs 3D pour enrichir l’affichage ou proposer de nouvelles interactions.

Affichage de la classification avec Giro3D

Affichage de la classification avec Giro3D

N’hésitez pas à visiter les deux démos sur le site de Giro3D, rendues possibles par ces travaux:

Autre amélioration bienvenue : py3dtiles accepte désormais les nuages de points mélangeant points colorés et non colorés, ce qui simplifie la gestion de données hétérogènes.

Fusionner facilement plusieurs jeux de données 🔗

L’outil de fusion de tilesets a été entièrement revu. Il permet désormais de combiner plusieurs jeux de données 3D Tiles en un seul, de manière plus simple et plus fiable.

C’est particulièrement utile pour :

  • assembler plusieurs zones converties séparément ;
  • et ainsi pouvoir faire de la mise à jour incrémentale, en modifiant uniquement une partie d’un jeu de données existant sans tout reconvertir ;

Une distribution plus simple 📦

Pour faciliter l’utilisation :

  • une image Docker officielle est désormais disponible ;
  • le support de macOS est renforcé grâce à une intégration continue dédiée. Pour l’instant, il n’y a pas de packaging spécifique mac.
  • py3dtiles est compatible avec Python 3.10 à 3.13. Le support de Python 3.14 sera ajouté dès la prochaine version.

Un packaging windows en .exe est également en préparation.

Pour les intégrateurs et développeurs 👩‍💻👨‍💻

Si vous utilisez py3dtiles comme bibliothèque, l’API s’est enrichie de nombreuses fonctionnalités.

Parmi les plus marquantes : la possibilité de créer vos propres logiques de découpage des données 3D, afin d’adapter finement les performances et l’organisation du rendu à vos besoins.

Ces évolutions ouvrent la voie au support de nouveaux formats et à des usages toujours plus larges. N’hésitez pas à consulter les notes de versions pour les découvrir !

Un projet open-source et vivant 🤝

Le projet continue d’évoluer grâce à sa communauté, qui est appelée à s’agrandir. Toutes les contributions sont les bienvenues, qu’il s’agisse de code, de tests ou de retours d’expérience.

Bonne nouvelle également : py3dtiles bénéficie désormais d’un soutien européen via le programme NGI Zero Core, qui finance notamment la gestion des meshes texturés, la simplification de géométrie et le support de nouveaux formats comme OBJ.

À venir 🔮

Parmi les chantiers en cours ou à venir :

  • un visualiseur intégré, basé sur Giro3D pour prévisualiser rapidement vos conversions ;
  • la prise en charge progressive de la spécification 3D Tiles 1.1, avec des formats plus modernes et des métadonnées enrichies.

En résumé : avec la v12, py3dtiles devient un outil plus complet, plus performant et plus accessible pour transformer vos données 3D — du BIM aux nuages de points — en expériences web interactives.

N’hésitez pas tester et à remonter vos besoins via notre plateforme de ticket!

Vous avez des questions ? Vous souhaitez un accompagnement, ou une collaboration sur de nouvelles fonctionnalités ?
Contactez Oslandia, nous sommes ravis d’entendre vos projets ! ✉️ infos+3d@oslandia.com