Amount pledged:

 

1250

 EUR

Target amount:

 

75000

 EUR

Campaign end:

 

30 June 2025

Support the project

A lot has happened since the humble beginnings back in 2017 when we introduced 3D map views in the QGIS 3.0 release. We have worked hard to improve QGIS 3D over the years through contracts with various organizations - and for larger chunks of work we have managed to run several crowdfunding campaigns - in 2018, 2020, 2021 and 2022. Thanks to that, QGIS has received support for point cloud data, 3D Tiles, elevation profile tool, lidar processing algorithms, globe view and much more. Check out our blog to learn more.

Now we are back with a new crowdfunding campaign that promises a whole range of useful functionalities when working with 3D data. There is a lot of focus on improving support for vector layers in 3D map views, together with addition of scene layers from ESRI, with various rendering quality and performance improvements. We are again partnering with North Road, one of the leading contributors to QGIS, to work together on the implementation.

The overarching goal is to help make QGIS an open platform for building geospatial digital twins. Beyond the buzzword, digital twins are becoming useful tools in cities, governments and across many industries. By combining 3D models of the physical world with various other data streams, they enable better understanding of the environment, analyses or simulations. We see QGIS well-positioned in building and management of digital twins - it can seamlessly integrate a wide range of geospatial data, and provide editing and analytical capabilities. With the improvements proposed in this crowdfunding campaign, we believe that we will bring QGIS another step towards being an important part of open platforms for digital twins.

The total cost of development will be 75 000 EUR. If you want to make a contribution, please fill the pledge form. For more information about contribution and how it works, see below. 

Timeline

The campaign to pledge funds is set to finish on June 30, 2025. Work will commence when the target for our crowdfunding campaign has been reached. We aim to deliver the promised features over QGIS 4.0 and 4.2 (due to be released in October 2025 and February 2026 respectively).

About us

This effort has been organised and led by Lutra Consulting in collaboration with North Road. These are two highly respected, proven companies committed to open source GIS, both of them with a history of running successful campaigns to enhance Open Source GIS software.

Together, we’ve put forward a team of outstanding quality and complementary skills:

  • Lutra Consulting (based in the UK) has been contributing to QGIS for more than ten years and are leading development of the 3D map view within QGIS
  • North Road (based in Australia) are one of the leading forces in QGIS development, adding great amount of new features with a lot of focus on beautiful cartographical and analytical capabilities

Crowdfunding

This project cannot go ahead without your support! We use crowdfunding to raise funds for projects like this one which benefit a wide community of users. The project will only proceed if sufficient funding can be raised before the project crowdfunding deadline.

Pledging funds is safe and easy. Simply fill in the pledge form to state how much you want to pledge - pledges only become binding if the funding target is reached before the deadline. When we reach the target, we will send invoices to supporters and the implementation work will start.  The minimum amount to contribute is set to 200 euro. If you cannot afford to make a financial contribution, we appreciate it if you could spread the word.

For any questions, please do not hesitate to contact Saber

If you are based in Australia and have difficulty pledging funds to companies outside your country, please contact North Road to facilitate your contribution.

If your organization cannot contribute to a crowdfunding campaign and you would like to arrange a private contract to cover some of the features, please contact us.

Detailed Proposal and Deliverables

3D Vector Data - Points

While QGIS 3D already has support for point vector layers, there are several shortcomings in QGIS 3D that limit the usefulness of the point data. We are planning to:

  1. Add data-defined size, position and rotation of 3D point symbols. This is a frequently requested feature, as it would allow much better control of placement of objects like trees, benches or lampposts. Thanks to QGIS expressions, users will be able to achieve complex styling - for example, to use slightly different rotation and size of tree models for a more natural look.
  2. Dramatically improve performance of 3D models (loaded from external files, such as .obj). Currently, using 3D models causes very high memory use and slow rendering, to the point that QGIS may freeze or crash with more than a few hundred points. We will fix that, making sure that QGIS works well with a large amount of point features (using instanced rendering technique).
  3. Add a library of 3D models. Just like we have a library of 2D symbols, choosing a 3D symbol should be made easy with a widget with a preview of available 3D models. There are a couple of 3D models already shipped with QGIS, and we expect more will be added when using them becomes easier.
  4. Allow changes to materials of 3D models loaded from external files. Right now, users can use a 3D model with its original materials (textured or not) or with QGIS-provided material (single color for the whole 3D model). To improve this situation, we will load materials from the original 3D models and allow more granular changes to colors.
  5. Add data-defined color to 3D point symbols. The ability to customize colors based on some attribute value (or expression) greatly increases the usefulness of the display, for example to set red/amber/green color to 3D symbols of assets based on asset’s condition.

3D Vector Data - General

There are also some general improvements for vector layers to be made:

  1. Add highlighting of features. Identification of vector data in 3D map views works, but features only get highlighted in 2D map views. That makes identification in 3D views less efficient, as it requires switching to 2D views to cross-check which one is the current feature. With highlighting, users will get a semi-transparent highlight of the 3D object, ideally also with a silhouette.
  2. Improve how vector layer’s data are split into chunks. The chunking mechanism in QGIS 3D has proved to work well with point cloud and tiled scene layers, but vector layers are not using its potential - a vector layer currently gets split into 4x4 tiles, and all data gets loaded to the memory. This is fine for small layers, but not for larger datasets. We will improve this by picking the size of the tiling scheme dynamically (based on the number of features) and by initially loading only smaller amounts of data from vector layers. This will improve memory consumption, rendering speed and 3D view load times.
  3. Make the tessellator more efficient. The tessellator in QGIS is used to turn polygons into 3D triangular meshes, optionally adding extrusion. As of now, mesh vertices from the tessellator are stored multiple times in the output vertex buffer. There is scope for faster rendering and significant reduction of GPU memory usage by using index buffer, to eliminate duplication of vertices. While at it, we will also add “floors” to extruded polygons (right now they only have “roofs” and “walls”).
  4. Make vector layers work in globe scenes. At this point, vector layers are only well supported on local scenes. With some effort, we will be able to bring vector data to the globe as well!

ESRI Scene Layers (I3S)

Two years ago, we added support for 3D Tiles in QGIS. This has opened the door to many new use cases, given the popularity of the format for dissemination of 3D geospatial data, most commonly textured meshes from photogrammetry or buildings as 3D objects (textured or not). There is another widely used format for handling 3D geospatial data - ESRI’s I3S format. There are many similarities between I3S and 3D Tiles, and both are recognized as community standards by OGC. Like 3D Tiles, the I3S format also recognizes several data types - we will focus on supporting 3D Objects and Integrated Mesh, as these are by far the most popular ones.

Screenshot of a scene layer data of Kornwestheim in a web app using I3S

Screenshot of a scene of Bratislava Old Town in a web app using I3S

Point Clouds

In our previous campaigns, we focused heavily on point clouds - and this time we are not leaving them out either! We will add a couple more algorithms to the point cloud processing toolbox - as usual, all backed by PDAL library:

  1. Height above ground - using a classified point cloud, the algorithm will create a new point cloud where Z coordinates of points are modified so that they are relative to the ground. This is useful in many scenarios, both for further processing (e.g. creation of canopy height models) or in interactive 3D view (e.g. querying height of objects).
  2. Classification - the algorithm will classify points to ground and non-ground, using the SMRF algorithm.
  3. Noise filtering - the algorithm will detect outliers and mark them with noise classification, so that such points can be ignored in further processing.
  4. Transformation - to translate, scale or rotate a point cloud. Useful when working with a point cloud that has not been properly georeferenced, or if the whole dataset needs a slight adjustment (e.g. adjust Z values)

On top of this, we plan to add support for remote virtual point cloud layers: users will be able to simply pass a URL of remotely hosted dataset, and QGIS will take care of downloading its content as needed. This will make things easier for datasets where data gets updated.

Screenshot of point cloud data from IGN’s Lidar HD

Cross Sections: Orthographic Projection

In upcoming QGIS 3.44, we have introduced the possibility to show cross sections in 3D map views after picking a cross section in 2D map view. To make cross sections even more useful, we would like to allow switching to orthographic view mode, to avoid perspective distortion, for extra precision when needed. (The orthographic view can be selected in the configuration dialog even now, but it has been broken for a very long time.)

Comparison of perspective and orthogonal camera in a cross-sectional view

Rendering Quality

3D map views in QGIS do not have their primary focus on rendering super high quality 3D output, as there would be a long way to achieve cinematic rendering quality that game engines or professional 3D rendering engines can do. However, there are some small wins here and there, to make 3D views more pleasant to use:

  1. Add anti-aliasing. Scenes commonly have ugly-looking transitions at the edges of 3D objects, due to abrupt change of colors, and lines can look pixelated. This can be solved by various anti-aliasing techniques. We will use multi sample anti-aliasing (MSAA) which is fairly simple, but effective in smoothing out the transitions (alias).
  2. Improved background. Currently we use a single color (white by default) for the background of 3D maps. We will add an option to use a vertical color gradient, which is often seen in other 3D apps, and looks better. It will also allow simple emulation of the sky.

You might also want to read these

Let's make the QGIS work for you

Lutra Consulting is a QGIS-focused expert provider of geospatial software development, consulting, training, and support services.

Get in touch
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Cookie Policy for more information. Deny cookies here.