Johan van Doornik

3D LIDAR Low Poly modeling

Apr 2018 - Dec 2019

3D low polygon estimation for all buildings in the Netherlands, based on LIDAR and Kadaster data. Used for estimation of roof and wall surface areas.

This project was based on the AHN2 dataset, a complete and publicly available LIDAR scan of The Netherlands, with a resolution of about 8 points per m2. All data was stored in a PostGIS database. Publicly available building contours from Kadaster were cleaned up and transformed into 2D polygons. These polygons were used to query enclosed LIDAR points. A python library was developed with 2D and 3D vertex, edge, polygon, and polyhedron classes and all necessary arithmetics, linear algebra, and functions such as plane intersections, splitting up concave shapes, etc. With this library we developed an algorithm to establish the most optimal 3D solid representation of the pointcloud within the contour. Optimal in the sense of a lowest fitting error in combination with certain (trial and error) criteria to produce visually appealing 3D models in which homeowners would be able to recognize their house.

My Contribution

  • Architecture
  • Design and implementation of the spatial library and algorithms to establish the 3D building representation
  • API design
  • CI/CD pipeline for deployement to AWS Lambda for real-time computation

Images and Screenshots

3D Low Poly Approximation of building:

3D Low Poly Approximation of building

External Links

Highlights

  • Relatively high precision estimation of wall and roof surface areas
  • Much more accurate and visually attractive than the standard shoe-box models often seen by competitors
  • Realtime computation via scalable, serverless REST APIs
  • export as OBJ

Users

  • multiple international energy corporations
  • several smaller clients
  • municipalities

Technology Stack

  • Python
  • NumPy
  • SciPy
  • matplotlib
  • custom algorithms
  • scikit-learn
  • algorithms
  • AWS
  • AWS Lambda
  • AWS S3
  • AWS ApiGateway
  • DB