Takes 2D GIS datasets (e.g. topographical datasets) and "3dfies" them (as in "making them three-dimensional") by lifting every polygon to 3D. The elevation is obtained from a point cloud (we support LAS/LAZ at this moment), and the semantics of every polygon is used to perform the lifting. That is, water polygons are extruded to horizontal polygons, buildings to LOD1 blocks, roads as smooth surfaces, etc.

Every polygon is triangulated (constrained Delaunay triangulation) and the lifted polygons are "stitched" together so that one digital surface model (DSM) is constructed. Our aim is to obtain one DSM that is error-free, i.e. no intersecting triangles, no holes (the surface is watertight), where buildings are integrated in the surface, etc. This surface will then be used as input in simulation software for instance.

How does the lifting option work?

The lifting options can be configured in the YAML file provided, an example is provided in /resources/config_files/myconfig.yml. Any 2D input (which should be a planar partition) can be used as input, and each class must be mapped to one of the following:

  • Building

  • Terrain

  • Road

  • Water

  • Forest

  • Bridge

  • Separation (used for walls and fences)

Platforms

macOS Linux, Windows, and Docker

License

GPL3.0

Tags

3d,3d design, 3d modeling,creative,art,gamedev,animation,3d printing,low poly,maps,GIS, 2d GIS,DSM

Resources

Github