Inspiration
The increasing frequency and severity of wildfires worldwide highlighted a critical gap in early-response tactical tools. Traditional systems often lack immediate, actionable meteorological integration and spatial processing for field teams. Canopy Watch was inspired by the need to bridge raw satellite observation data with real-time tactical intelligence—transforming raw thermal anomalies into clear evacuation corridors, wind-aligned threat cones, and environmental impact assessments.
What it does
Canopy Watch is a full-scale tactical command platform designed for real-time wildfire surveillance and emergency response management.
- Live Satellite Uplink: Pulls thermal anomalies directly from the NASA FIRMS API (MODIS & VIIRS feeds).
- Meteorological Vector Integration: Fetches live local wind speed, direction, and humidity via OpenWeatherMap.
- Predictive Threat Pathing: Computes 5km fire spread cones and safe upwind evacuation waypoints using Turf.js.
- Generative AI Dispatch Briefings: Synthesizes environmental telemetry into professional response briefings using the Google Gemini API.
- Multi-Channel Alerts & Reporting: Dispatches automated emergency SMS/Email notifications and generates downloadable tactical PDF incident reports.
How we built it
Canopy Watch is engineered using a modern full-stack cloud architecture:
- Frontend (
client/): Built with React and Vite, featuring a dark-mode tactical UI. It utilizes React Leaflet for map rendering, Leaflet Draw for custom polygon creation, and Leaflet GeoSearch for global address lookup. - Backend Engine (
server/): Built on Node.js and Express.js to manage REST endpoints and asynchronous third-party API orchestration. - Geospatial Processing: Powered by Turf.js for server-side polygon buffering, centroid calculation, and wind-aligned vector projections.
- Database & Automation: Sector definitions are persisted via Mongoose in MongoDB Atlas, while background surveillance is automated using Node-Cron.
Challenges we ran into
- Managing Satellite Data Latency & Bounding: Querying global satellite feeds for arbitrary user-drawn polygons created performance bottlenecks. We resolved this by implementing dynamic spatial bounding box extraction (
[minLon, minLat, maxLon, maxLat]) to scope NASA FIRMS queries strictly to the active sector. - Wind-Aligned Trajectory Projections: Accurately calculating fire spread direction based on volatile meteorological wind degrees required inverse vector math ($\theta_{\text{spread}} = (\theta_{\text{wind}} + 180^\circ) \pmod{360^\circ}$) to generate accurate threat cones.
- Cross-Origin Canvas Exporting: Rendering live map DOM elements into exportable PDF reports (
jsPDFandhtml2canvas) initially triggered tainted canvas security exceptions, which we resolved by optimizing tile server CORS headers.
Accomplishments that we're proud of
- Successfully bridging real-time satellite telemetry (NASA FIRMS) with predictive meteorological pathing in a unified, responsive interface.
- Implementing an automated background CRON surveillance engine capable of continuous sector monitoring and emergency alert broadcasting.
- Designing a seamless client-side PDF export tool that captures live map canvas layers and environmental impact metrics into clean incident reports.
What we learned
- Geospatial Mathematics: Gained deep expertise in handling spatial intersections, coordinate transformations, and buffer zones programmatically.
- Asynchronous Service Orchestration: Learned how to safely chain multi-service API dependencies (NASA + OpenWeatherMap + Gemini AI) within a unified backend route without blocking server performance.
What's next for canopy-watch
- Multi-Agency Collaboration Portals: Adding role-based access control (RBAC) so local fire departments, forestry services, and civilian emergency units can share live sector updates.
- Machine Learning Spread Prediction: Integrating historical topography, vegetation index (NDVI), and dry-spell metrics to refine predictive fire-front velocity models.
- Mobile Field App: Developing a companion React Native application optimized for offline-first usage by first responders in remote forest environments.
Built With
- api
- css
- draw
- express.js
- gemini
- geospatial
- javascript
- jspdf
- leaflet.js
- mongodb
- mongoose
- nasa
- node.js
- nodemailer
- openweathermap
- react
- render
- rest
- turf.js
- vercel
- vite
Log in or sign up for Devpost to join the conversation.