Spaces:
Sleeping
Sleeping
| title: RoofSight | |
| emoji: "\U0001F3E0" | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: gradio | |
| sdk_version: 5.50.0 | |
| python_version: "3.11" | |
| app_file: app.py | |
| pinned: false | |
| models: | |
| - nvidia/C-RADIOv4-H | |
| # RoofSight — Roof Plane Segmentation | |
| Extract individual roof plane polygons from satellite imagery as georeferenced GeoJSON. | |
| ## How It Works | |
| 1. **Google Solar API** fetches high-resolution RGB imagery, building mask, and Digital Surface Model (DSM) at 0.1 m/pixel. | |
| 2. **RANSAC 3D plane fitting** detects geometric roof planes from the DSM point cloud — completely shadow-invariant. | |
| 3. **C-RADIOv4-H** (NVIDIA, 631M params) provides zero-shot appearance-based segmentation using DINOv3 + SAM3 + SigLIP2 features distilled into one backbone. | |
| 4. **Fusion** merges geometry (RANSAC) with appearance (RADIO) for accurate plane boundaries. | |
| 5. **GeoJSON export** with per-plane pitch, azimuth, and area. | |
| ## Requirements | |
| - Google Cloud API key with Solar API + Geocoding API enabled. | |
| ## Usage | |
| Enter a property address and click **Segment Roof**. The app will: | |
| - Download satellite imagery from Google Solar API | |
| - Isolate the primary building | |
| - Fit 3D planes to the roof surface | |
| - Run zero-shot segmentation for visual refinement | |
| - Output a downloadable GeoJSON file | |
| ## Architecture | |
| ``` | |
| Address -> Geocode -> Google Solar API (RGB + Mask + DSM) | |
| -> Building Isolation -> RANSAC Planes + C-RADIOv4-H | |
| -> Fusion -> GeoJSON Polygons | |
| ``` | |
| | Module | Purpose | | |
| |--------|---------| | |
| | `google_solar.py` | API calls, GeoTIFF parsing | | |
| | `building.py` | Building isolation, cropping | | |
| | `ransac_planes.py` | 3D plane fitting, DSM upscaling | | |
| | `radio_backbone.py` | C-RADIOv4-H model, zero-shot segmentation | | |
| | `fusion.py` | Geometry + appearance merge | | |
| | `geo_export.py` | GeoJSON polygon extraction | | |
| | `pipeline.py` | Orchestration | | |
| | `app.py` | Gradio UI | | |