AI-powered urban heat mitigation and tree-planting planner for Montreal. View priority zones on a map, select a zone, and get AI-generated intervention blueprints with cost and benefit estimates and recommended planting sites.
- Map view: Explore Montreal with a map of ML-derived priority zones (heat/risk).
- Zone analysis: Click or select a zone to request an AI analysis.
- Intervention blueprint: Get structured recommendations—candidate planting sites, estimated tree counts, approximate implementation cost (USD), and approximate annual benefit (USD)—generated by Gemini using satellite imagery and zone context.
- Montreal context: Cost and benefit guidance is tuned for municipal street-tree planning in Montreal, Canada.
- Frontend: Vite, React, TypeScript, Tailwind CSS, shadcn/ui, Leaflet / Google Maps (
@vis.gl/react-google-maps). - Backend: Python, FastAPI.
- AI/ML: Google Gemini (Generative Language API) for vision + reasoning; optional ML pipeline for zone prioritization (e.g.
data_cleaning,backend/scripts). - Data: Precomputed top zones (e.g.
backend/data/top_10_ml_zones.json), satellite image caching for analysis.
Built with Railtracks.
genaigenesis/
├── backend/ # FastAPI backend
│ ├── main.py # Entry point, CORS, routes
│ ├── requirements.txt # Python dependencies (includes railtracks)
│ ├── reasoning/ # Zone analysis, Gemini, schemas
│ ├── services/ # Vertex AI, Firebase (if used)
│ ├── data/ # Top zones JSON, satellite cache
│ └── .env # GEMINI_API_KEY, GOOGLE_MAPS_API_KEY, etc.
├── frontend/ # Vite + React app
│ ├── src/
│ │ ├── components/ # MapView, IntelligencePanel, LayerPanel, etc.
│ │ ├── pages/ # Index
│ │ └── lib/ # API client (analyzeZone, etc.)
│ └── package.json
├── data_cleaning/ # Scripts for zone/GeoJSON processing
└── README.md
cd backend
pip install -r requirements.txt
# Set GEMINI_API_KEY (and optionally GOOGLE_MAPS_API_KEY) in backend/.env
uvicorn main:app --reloadThe API serves reasoning endpoints under /api/v1/reasoning (e.g. analyze zone by ID, return GeoJSON + analysis).
cd frontend
npm install
npm run devOpen the app (e.g. http://localhost:5173), select a zone from the layer panel or map, and view the AI-generated blueprint in the intelligence panel.
- Backend (
backend/.env):GEMINI_API_KEY(required for analysis),GOOGLE_MAPS_API_KEY(for satellite imagery), optionalCORS_ORIGINS,GEMINI_API_MODEL. - Frontend: See
frontend/.envfor API base URL if pointing to a different backend.
Originally conceived as an ECO-PULSE style hackathon project (Google sustainability / AI track). This codebase is GenAI Genesis / Eco-Pulse: an AI-assisted urban tree-planting and heat mitigation planner for Montreal.