EarthSight

See environmental risks before they become disasters.

EarthSight is an environmental early-warning intelligence platform that transforms citizen-reported environmental hazards into terrain-aware, weather-driven, explainable risk forecasts.

Instead of simply showing what has already gone wrong, EarthSight asks:

“Which existing hazard is most likely to become dangerous next — and why?”

A blocked drain may be harmless on a dry day. Add incoming rainfall, local terrain, and upstream hazards, and that same drain can become a flood risk. EarthSight models that escalation and turns it into an actionable priority.


Inspiration

Environmental hazards are often reported after they have already caused damage.

A blocked storm drain, illegal dumping site, or obstructed runoff channel may initially look like an isolated problem. But when rainfall arrives, terrain and surrounding hazards can transform that local issue into something much more serious.

We wanted to build something that moves environmental response from:

“What happened?” → “What is about to happen?”

EarthSight combines citizen reports, environmental intelligence, rainfall forecasts, and terrain analysis to identify hazards that could escalate before the next environmental event.


What it does

EarthSight allows citizens to report environmental hazards using an image and location.

The platform combines multiple signals to estimate how dangerous the hazard could become.

📸 Citizen Hazard Reports

Users can submit a photograph of an environmental hazard.

Google Gemini analyzes the image and identifies:

  • Hazard type
  • Severity
  • Observed material
  • Environmental impact
  • Model confidence
  • Visual evidence

🌧️ Weather-Aware Risk Projection

EarthSight retrieves current and forecast rainfall data and evaluates whether upcoming weather could amplify an existing hazard.

The system does not automatically increase risk just because a forecast exists. Weather-driven escalation requires meaningful rainfall or probability thresholds.

🗺️ Terrain-Aware Risk Analysis

EarthSight analyzes the terrain around a reported hazard using elevation data.

It samples a 9×9 elevation grid and calculates:

  • Depression depth
  • Upslope catchment
  • Local flatness
  • Flow direction
  • Flow accumulation
  • Flood exposure

This allows EarthSight to distinguish between a hazard on a well-drained slope and one located in an area where surrounding water naturally accumulates.

🔗 Hydrological Hazard Chains

EarthSight can detect when multiple hazards are connected by a plausible downhill water path.

For example:

Upstream blockage → downstream blockage → obstructed outlet

The system identifies these relationships using proximity, elevation difference, and terrain gradient.

This allows the platform to identify when clearing one downstream hazard alone may not solve the underlying problem.

📊 Explainable Risk

Instead of producing an unexplained score, EarthSight breaks projected risk into understandable factors:

  • Base severity
  • Terrain exposure
  • Hazard category
  • Current rainfall
  • Forecast rainfall
  • Rain probability
  • Timing urgency
  • Upstream hazards

🎯 Actionable Priorities

EarthSight helps identify where intervention should happen first.

For connected hazards, the platform can recommend addressing upstream blockages before downstream outlets because upstream water may continue flowing toward the outlet.


How we built it

EarthSight combines AI vision, geospatial computation, environmental APIs, and a modern web stack.

Frontend

  • Next.js 16
  • React
  • TypeScript
  • Tailwind CSS v4
  • React Leaflet
  • OpenStreetMap
  • Lucide

AI

  • Google Gemini Vision

Gemini is used for environmental hazard image analysis.

Environmental & Geospatial APIs

  • Open-Meteo Forecast API — rainfall and weather forecasts
  • Open-Meteo Elevation API — terrain elevation
  • Open-Meteo Geocoding API — address to coordinates
  • BigDataCloud — coordinates to place names
  • OpenStreetMap — map visualization

Core Processing

The terrain pipeline works as:

Hazard coordinates → Elevation grid → D8 flow direction → Flow accumulation → Catchment → Flood exposure → Risk engine

The hazard-chain pipeline works as:

Hazards → Distance check → Elevation check → Gradient check → Drainage graph → Hazard chain → Compounded risk


Challenges we ran into

Making terrain meaningful

One of the biggest challenges was going beyond simply retrieving elevation data.

We needed to calculate how water could actually move across the sampled terrain.

This required implementing flow direction and accumulation while correctly handling diagonal distances, local minima, and processing order.

Avoiding fake predictions

It is easy to make a demo look intelligent by simply increasing a risk score whenever rainfall exists.

We deliberately avoided this approach.

EarthSight only treats weather as a meaningful escalation factor when the forecast crosses defined thresholds.

Modeling interconnected hazards

Environmental hazards are not always isolated.

Multiple blocked drains can form a connected drainage problem where an upstream blockage affects downstream locations.

We built a hazard-chain model to represent these relationships.

Keeping the system explainable

We didn't want EarthSight to simply say:

“Risk: 91.”

We wanted it to explain:

“Risk increased because of terrain exposure, rainfall, hazard severity, and upstream blockages.”

This made explainability a core part of the architecture rather than an afterthought.


Accomplishments that we're proud of

🌊 Terrain-aware intelligence

The platform performs real geospatial calculations using elevation data instead of treating every hazard location equally.

🔗 Hydrological hazard chains

EarthSight can identify connected hazards and model how upstream problems can increase downstream exposure.

🔍 Explainable risk scoring

Risk is broken into understandable contributing factors instead of being presented as a black-box number.

🧪 Deterministic risk engine

The terrain and cascade calculations are deterministic and reproducible.

Identical inputs produce identical results.

🚫 Honest AI behavior

EarthSight does not fabricate confidence, silently invent coordinates, or hide missing environmental data.

Sample incidents are explicitly labeled separately from community reports.


What we learned

The most important lesson we learned was that building an AI feature isn't necessarily the hardest part.

The harder question is:

“What is the system actually allowed to claim?”

Environmental risk requires more than an AI model and a weather API.

Terrain, rainfall timing, geographic relationships, uncertainty, and data availability all matter.

We also learned how important seemingly small geospatial details can be. Correctly weighting diagonal distances, processing flow accumulation in the right order, and handling local minima were critical to producing meaningful terrain analysis.

Most importantly, we learned to design the system so that uncertainty is surfaced rather than hidden.


What's next for EarthSight

EarthSight's next stage is about connecting environmental risk with real-world exposure.

🏫 Infrastructure Exposure

We plan to identify nearby:

  • Schools
  • Hospitals
  • Critical infrastructure
  • Public facilities

and incorporate their proximity into environmental risk prioritization.

📈 Historical Backtesting

We want to compare EarthSight's projected risks against historical rainfall and documented flood events to evaluate the model using real-world scenarios.

🌐 City-Scale Environmental Intelligence

Our long-term vision is to build city-wide environmental early-warning networks where citizen observations, terrain, weather, and connected infrastructure continuously inform environmental response.


Built With

Share this project:

Updates

Submission history