Several companies offer services to generate roof measurement reports, but they are all quite expensive for the simple task of collecting roof square footage. My brother wanted a straightforward tool to estimate square footage without the high markup these services charge.
Task
Create a fullstack application that:
Provides a simple interface for entering an address
Uses satellite imagery, point clouds, and deterministic algorithms to estimate roof square footage
Offers cost estimates based on square footage
Displays results in a 3D viewer
Action
I started with a fullstack application template using Vite/React and Node/Express/Sequelize/PostgreSQL that I built previously.
Integrated the Google Solar API to fetch satellite imagery, footprint masks, and DSM data.
Leveraged three.js server-side to process DSM data and footprint masks, generating a refined roof area point cloud. Automated noise reduction and outlier removal enabling accurate surface area estimation from the final processed point cloud.
Persisted all data in Backblaze and PostgreSQL.
Used three.js client-side to build a 3D viewer that displays third-party files, processed point clouds, and roof analysis results.
Result
Compared to other paid services, this tool provides similar roof square footage and cost estimates at little to no hosting or provider cost for a small-scale project. The 3D viewer adds value by allowing users to visualize the roof structure and see which points are included in the calculation for any given address.