We created MDAL - the Mesh Data Abstraction Library - and brought native mesh layer support to QGIS. Hydraulic models, flood simulations, meteorological forecasts, and oceanographic data can all be loaded, visualised, and edited directly in QGIS without specialist software.
Funded and supported by leading software vendors and users worldwide
The MDAL library is the foundation of mesh support in QGIS. Every element of the QGIS mesh infrastructure was designed and implemented by Lutra. By integrating the MDAL library and interactive editing directly into the mainline release, we provide a stable and professional framework for temporal and multidimensional data analysis.
MDAL - Mesh Data Abstraction Library
Raster and vector formats cannot adequately represent the outputs of hydraulic, hydrological, or meteorological solvers which produce results on unstructured grids that vary in space and time. We created MDAL as the open-source answer: a format-agnostic C++ library that gives QGIS a unified interface to any mesh dataset, exactly as GDAL does for rasters.
MIT-licensed C++ library, bundled with every QGIS installation
Reads structured, unstructured, and 1D/2D/3D mesh types
Supports scalar and vector dataset groups with full temporal dimension
External driver system for vendor-specific proprietary formats
Accepted as an OSGeo Community Project in 2021
Simulation results & temporal animation
Hydraulic solvers produce time-series results at every mesh node - flood depth, flow velocity, water surface elevation, across thousands of timesteps. QGIS renders and animates these natively using the temporal controller, with no pre-processing or conversion required.
Full integration with QGIS temporal controller (QGIS 3.14) - Lutra added mesh layer support to the community-built framework
Vector datasets: flow velocity, wind speed, current direction with animated streamlines
Multi-identify tool for inspecting values across timesteps at any location
Contours, streamlines & 3D rendering
Mesh data can be visualised with contour fills, vector arrows, animated streamlines, and particles. The same dataset renders in both the 2D map canvas and the 3d view. Full mesh layer support is available in print layouts for publication-ready output.
Contour colouring with configurable colour ramps and class breaks
Vector arrows scaled and coloured by magnitude
Animated streamlines and particles for flow visualisation
1D mesh rendering: variable line width styled by dataset value (e.g. pipe pressure)
Full 3D mesh view: terrain surface coloured by simulation result
Rendering speed improvements
Support for wind barbs rendering
Interactive mesh frame editing
QGIS supports direct editing of mesh geometry - adding, moving, and deleting vertices and faces in the mesh frame. This enables hydraulic modellers to refine computational grids and correct mesh topology without leaving QGIS or exporting to pre-processing software.
Add, move, and delete mesh vertices and faces interactively
TIN mesh creation from point layers or scratch
Snap to existing mesh nodes for precise topology control
Undo/redo support for non-destructive editing workflows
Virtual dataset groups: store intermediate computed results on the mesh
20+ solver formats, one QGIS layer
MDAL abstracts away the differences between every major hydraulic and meteorological solver format. Whether your results come from TUFLOW, Delft3D, MIKE, HEC-RAS, or a global weather model, they load into QGIS as a single consistent mesh layer with no conversion step.
External driver API for proprietary or closed formats (e.g. DHI DFSU on Windows)
From Crayfish to MDAL and over a decade of mesh development
Every milestone below represents sponsored development delivered on time and merged into the QGIS main branch, available to every user in the next release.
Crayfish plugin - the beginning
Back in 2012, we developed the Crayfish plugin to solve a specific headache for hydraulic engineers. At the time, QGIS lacked the tools to handle 2D flood simulations, forcing engineers to jump between different software just to see their results. Crayfish changed that by allowing users to visualise initially TUFLOW results.
MDAL created & mesh layer goes native
As data formats multiplied, we realized the mesh-reading logic in Crayfish needed to stand alone. In 2018, we launched the Mesh Data Abstraction Library (MDAL), a C++ library that does for meshes what GDAL does for rasters. That same year, we worked with the community to pull MDAL into the QGIS core. Since version 3.4, mesh has been a native data type available to every user out of the box.
Temporal controller & 1D mesh support
While users could already animate data, the arrival of the QGIS-wide temporal controller allowed mesh to adopt a more standardised framework. This made it easier to sync flood animations with the rest of the map. We also introduced 3D stacked meshes to visualise depth-averaged outputs across vertical layers. We expanded support to 1D elements, bringing urban drainage into the same environment as 2D mesh data.
We later expanded the library’s reach by adding native support for HEC-RAS 6 outputs, bringing the latest US Army Corps of Engineers' popular hydraulic model directly into QGIS. At the same time, we introduced an external driver mechanism that allows proprietary formats (like DHI's MIKE suite (DFSU)) to be sideloaded without compromising our open-source code. To top it off, MDAL was accepted into the OSGeo Community Programme, a milestone that recognised it as a key piece of open geospatial infrastructure and cemented its value to the wider industry
We integrated the QGIS label engine with mesh layers, so you can now label vertices, faces, and data values using standard expressions. This makes it much easier to check simulation results directly on the canvas. We also added mesh editing tools for adding, removing, or moving vertices and faces, refining elements with Delaunay triangulation, and updating Z values. Since you can now handle these fixes within QGIS, you don't have to export your data to specialist software just to clean up a grid
Our expertise in QGIS mesh work
We built MDAL and the mesh layer
The Crayfish plugin (2012), MDAL (2018), and the QGIS mesh layer type were all created by Lutra engineers. We understand the full stack from the MDAL C++ API, the QGIS data provider, the rendering pipeline, and the temporal framework with no learning curve.
Deep hydraulic modelling domain knowledge
We have worked directly with the teams behind TUFLOW, Delft3D, MIKE, TELEMAC, HEC-RAS, and FLO-2D to integrate their formats into MDAL. We understand the semantics of hydraulic simulation outputs not just the file formats and can design visualisations and analysis tools that are genuinely useful to modellers.
Everything ships in mainline QGIS
Every feature we deliver is merged into the official QGIS and MDAL repositories and released to the entire user base. Your investment benefits the global hydraulic modelling community while meeting your specific format or workflow requirements. No forks, no plugins, no vendor lock-in.
Trusted by the hydraulics industry
BMT, Deltares, DHI, Artelia, FLO-2D, ETH Zurich, Hydrotec, and the Austrian Federal Government have all sponsored mesh and MDAL development through Lutra. We know how to work within commercial software vendor constraints while delivering open-source results that benefit the whole community.
Need more formats or tools in MDAL and mesh?
Whether you need a new solver format integrated into MDAL, improvements to hydraulic result visualisation, mesh editing workflows, or a custom geospatial pipeline for your simulation data get in touch to discuss the options.
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.