--- title: Site Intelligence Studio emoji: 🧭 colorFrom: green colorTo: blue sdk: gradio sdk_version: 5.50.0 python_version: '3.12' app_file: app.py pinned: false --- # Site Intelligence Studio Site Intelligence Studio is a Gradio app for architecture students and early-career architects who need to turn a site boundary into a first-pass site-analysis board pack. The app is built for the Hugging Face Build Small Hackathon, Backyard AI track. The real user is an Indian architecture student / early-career architect who described the repetitive work of collecting climate, site context, boundary, terrain, soil, and existing-condition notes from scattered sources, then redrawing them into sheets. ## What It Does - Draw a polygon or rectangle on an open map. - Drop a pin and radius for approximate neighborhood context. - Paste latitude/longitude or a Google Maps URL containing coordinates. - Upload DXF and select detected boundary candidates. - Upload Google Earth / GIS-style KML or KMZ boundaries. - Upload GeoJSON boundaries. - Upload PDF as reference-only material. - Generate an architecture-style board preview with downloadable PNG/PDF. - Generate climate, sun/wind, geographic context, evidence, checklist, and Markdown report outputs. - Add Google Maps / Google Earth / OpenStreetMap reference links without using Google as the drawing engine or hidden evidence source. - Generate a bounded Small Model Brief tab. By default this uses deterministic fallback text; set `ENABLE_SMALL_MODEL=1`, `HF_TOKEN`, and optionally `SMALL_MODEL_ID` to use a <=4B Hugging Face text model for captions/checklist wording. - Keep soil, foundation, legal boundary, and professional decisions explicitly outside the app's authority. ## Why This Is Not Just A Chatbot The app does deterministic work first: - geometry normalization - area/perimeter/centroid calculation - DXF/KML/KMZ/GeoJSON parsing - Open-Meteo climate summaries - OpenStreetMap / Overpass context lookup - Nominatim reverse-geocoding - OpenTopoData terrain sampling - SoilGrids preliminary topsoil signals - evidence rows with confidence and limitations The small-model layer is intentionally bounded. The default model id is `HuggingFaceTB/SmolLM2-360M-Instruct`, but live model generation is disabled unless environment variables are configured. If it is unavailable, the app uses deterministic fallback text. The model/fallback only rewrites evidence into captions, checklist language, and explanation. It must not invent site facts, recommend foundations, verify legal boundaries, or design the building. ## Data Sources - Open-Meteo Forecast API for forecast/current weather. - Open-Meteo Historical Weather API for recent historical and climate-normal-style summaries. - OpenStreetMap and Overpass API for mapped roads, buildings, land use, water, green/open space, and amenities where available. - OpenStreetMap Nominatim for approximate reverse-geocoded address context. - OpenTopoData SRTM 90m API for preliminary elevation/relief/slope cues. - SoilGrids / ISRIC for coarse preliminary topsoil texture indicators. - Leaflet with vendored local assets for the map UI. - User-uploaded DXF, KML/KMZ, GeoJSON, and user notes. ## Boundary Accuracy Drawn map boundaries are approximate. Open map tiles are useful for context and rough tracing, but they are not plot-survey tools. Use CAD/DXF, KML/KMZ, GeoJSON, or survey drawings when boundary accuracy matters. CAD boundaries are only as reliable as the uploaded drawing. Local CAD coordinates must be anchored before public map/climate data can be interpreted. Google Maps / Google Earth links are visual references only unless the user exports KML/KMZ or verifies observations on site. ## Safety Boundaries This app is not: - a legal boundary verifier - a cadastral source - a geotechnical survey - a final foundation recommender - a structural engineering tool - a zoning/compliance authority - a Revit/BIM/Autodesk Forma replacement - a full building-design generator The app always treats soil, foundation, legal boundary, regulation, and final design decisions as professional or site-visit verification items. ## Demo Flow For Judges 1. Click **Use Chorwad sample site**. 2. Click **Generate site-analysis board pack**. 3. Open the Presentation Board tab and inspect the PNG/PDF board. 4. Open Diagrams to check climate, sun/wind, and context graphics. 5. Open Evidence Table to see source, confidence, limitation, and verification rows. 6. Open the Report tab for the longer site-analysis workbook. 7. Repeat with a drawn polygon, KML/KMZ, GeoJSON, or DXF boundary. ## Friend Validation Plan The real-user validation task is: 1. Use one real studio/thesis site. 2. Try either KML/KMZ, DXF, GeoJSON, or a drawn boundary. 3. Generate the board pack. 4. Mark which diagrams/text can be pasted into a sheet. 5. Mark which parts are wrong, generic, or not useful. 6. Estimate time saved compared with manual gathering. 7. Confirm whether source/confidence/uncertainty labels are understandable. 8. Provide one anonymized quote for the demo video or write-up. ## Current Limitations - Context maps depend on OSM completeness. - Terrain is coarse public elevation sampling, not a contour survey. - SoilGrids is a global model signal, not plot-level geotechnical truth. - Satellite/Earth references are manual visual-reference links, not processed satellite analysis. - PDF uploads are reference-only. - The app does not infer culture or demographics from coordinates. - The app does not perform zoning, CRZ, FSI/FAR, legal, cadastral, or compliance checks. ## Run Locally ```bash pip install -r requirements.txt python app.py ``` Then open the local Gradio URL shown in the terminal. ## Optional Small Model Configuration ```bash set ENABLE_SMALL_MODEL=1 set HF_TOKEN=your_huggingface_token set SMALL_MODEL_ID=HuggingFaceTB/SmolLM2-360M-Instruct python app.py ``` The app remains usable without these variables. Do not enable a model above the Build Small Hackathon parameter cap.