py3dtiles is a Python tool that makes it possible to convert 3D geospatial data from a wide range of formats into the 3D Tiles standard, so it can be easily and efficiently visualized in real-time 3D web applications.
It can be used via a command-line interface or integrated directly into an application thanks to its API.
Version 12 of py3dtiles was released at the end of 2025 and marks a major milestone for the project. Since our last article (back in the days of v7), many new features and improvements have been introduced. It is high time to catch up with an overview of the main new features in this release.
Features
IFC file support: a major step forward 🏗️
The flagship feature of v12 is support for converting IFC files, a must-have format in the BIM world! Concretely, this means you can now convert complete building models into 3D Tiles, ready to be visualized directly in a web browser.
Converting IFC data into 3D Tiles allows you to visualize (very) large volumes of data, thanks to multi-scale management and tiling. IFC files of several gigabytes are no longer a blocker for web visualization!
This work is built on solid foundations from the Liris open-source project py3dtilers, while significantly improving features, robustness, and performance.

A building converted using py3dtiles
New features include:
-
- More faithful rendering: materials are now properly supported, including cases where multiple materials are applied to a single object.

The door glass is now transparent, thanks to multiple material support
- Geographic coordinates handled: coordinate reference systems can be automatically reprojected to fit your use cases.

An IFC reprojected so it can be visualized in its geographic context
Performance has also been a major focus:
- Lower memory usage: the conversion process is much lighter than before, even for large files. We still rely on underlying native libraries, so memory usage will not be lower than the size of the input file.
- Faster conversions: data transformation can now take advantage of multiple CPU cores, significantly reducing processing times.
Taken together, these improvements can speed up conversion times by a factor of 10 in some cases!
For now, the organization of levels of detail follows the logical structure of IFC files (buildings, floors, rooms), but work is underway to provide simplified versions better suited to large-scale visualization.
Richer point clouds ☁️
Point cloud conversion continues to improve as well.
It is now possible to embed additional data (such as intensity or classification) directly into the converted files. This information can then be used by 3D viewers to enrich visualization or enable new interactions.

Classification display with Giro3D
Feel free to visit the two demos on the Giro3D website, made possible by this work:
Another welcome improvement: py3dtiles now accepts point clouds mixing colored and uncolored points, simplifying the management of heterogeneous datasets.
Easily merging multiple datasets 🔗
The tileset merging tool has been completely reworked. It now makes it possible to combine multiple 3D Tiles datasets into a single one, more simply and more reliably.
This is particularly useful for:
- assembling several areas converted separately;
- enabling incremental updates, by modifying only part of an existing dataset without reconverting everything;
Simpler distribution 📦
To make usage easier:
- an official Docker image is now available;
- macOS support has been strengthened thanks to dedicated continuous integration. For now, there is no specific macOS packaging.
- py3dtiles is compatible with Python 3.10 to 3.13. Support for Python 3.14 will be added in the next release.
A Windows .exe package is also in preparation.
For integrators and developers 👩💻👨💻
If you use py3dtiles as a library, the API has been enriched with many new features.
Among the most notable: the ability to define your own data partitioning logics, allowing you to finely tune rendering performance and data organization to your needs.
These evolutions pave the way for support of new formats and ever broader use cases. Be sure to check out the release notes to discover them!
An open-source and thriving project 🤝
The project continues to evolve thanks to its community, which is expected to keep growing. All contributions are welcome, whether code, tests, or feedback.
More good news: py3dtiles now benefits from European support via the NGI Zero Core program, which notably funds textured mesh handling, geometry simplification, and support for new formats such as OBJ.
Coming next 🔮
Among the ongoing and upcoming efforts:
- an integrated viewer, based on Giro3D, to quickly preview your conversions;
- progressive support for the 3D Tiles 1.1 specification, with more modern formats and richer metadata.
In summary: with v12, py3dtiles becomes a more complete, more performant, and more accessible tool for turning your 3D data — from BIM to point clouds — into interactive web experiences.
Feel free to try it out and share your needs via our issue tracker!
Do you have questions? Are you looking for support or a collaboration on new features?
Contact Oslandia — we’d be delighted to hear about your projects! ✉️ [infos+3d@oslandia.com]
