Skip to content

Lushenwar/Eco-Pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eco-Pulse (GenAI Genesis)

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.

What it does

  • 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.

Tech stack

  • 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.

Project structure

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

Running the project

Backend

cd backend
pip install -r requirements.txt
# Set GEMINI_API_KEY (and optionally GOOGLE_MAPS_API_KEY) in backend/.env
uvicorn main:app --reload

The API serves reasoning endpoints under /api/v1/reasoning (e.g. analyze zone by ID, return GeoJSON + analysis).

Frontend

cd frontend
npm install
npm run dev

Open 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.

Environment

  • Backend (backend/.env): GEMINI_API_KEY (required for analysis), GOOGLE_MAPS_API_KEY (for satellite imagery), optional CORS_ORIGINS, GEMINI_API_MODEL.
  • Frontend: See frontend/.env for API base URL if pointing to a different backend.

License and credits

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.

About

Mapping Heat. Planting Relief.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors