Under the Roof
Under the Roof helps homebuyers see beyond a polished listing and understand what to verify before making an offer.
Core trick
Matches floor-plan image observations to public permit records via tool calls, then flags findings with source links.
Description
Under the Roof helps homebuyers see beyond a polished listing and understand what to verify before making an offer. Powered by GPT-6 Astra, it investigates public property records, analyzes floor plans and images, and creates an interactive 3D spatial model. Spatial observations can prompt follow-up permit research, connecting what a home appears to show with what public records actually support. It also calculates assessment-based property tax estimates and turns evidence into clear buyer findings and recommended next steps.
Our Philadelphia prototype combines live municipal records with clearly labeled synthetic demo imagery analyzed live by Astra. Findings preserve uncertainty and link back to their sources, helping buyers ask better questions without mistaking incomplete records for proof of a problem.
README excerpt
# Under the Roof
**The listing sells. We investigate.**
Under the Roof helps homebuyers turn a polished listing into questions worth asking before an offer. It connects public property records, visual evidence, and assessment-based costs in one investigation—with sources a buyer can inspect.
Built for the GPT-6 Astra hackathon, this is a working Next.js application with live model calls, public municipal APIs, streamed tool activity, and an interactive Three.js spatial model.
## From images to an investigation
A floor plan can suggest a question that a public record alone would never raise. Under the Roof makes that connection visible:
```text
Property → Astra selects evidence tools
↓
Floor plan + image → Astra spatial graph → Interactive 3D model
↓
Qualified spatial observation
↓
Model-selected permit follow-up
↓
Grounded finding + buyer action
```
GPT-6 Astra analyzes the supplied images and returns a structured PropertySpatialGraph: rooms, approximate bounds, adjacency, connections, and qualified observations. Three.js renders those returned bounds. The geometry is not a prerecorded reconstruction in the live path.
When an observation warrants further investigation, Astra can choose a municipal tool, inspect the returned permit scope, and connect a buyer finding to the relevant room. Tool selection remains model-directed; the diagram illustrates a supp