Inspiration
Freshwater monitoring depends heavily on field observations, but professional monitoring cannot be everywhere at once. Citizen science can help expand that coverage: people can report changes in water appearance, flow, vegetation, visible waste, and other environmental conditions directly from the field.
The challenge is that citizen observations can be subjective, incomplete, and difficult to interpret without additional evidence or historical context.
That inspired AquaGuard AI — an explainable environmental intelligence platform designed to transform citizen freshwater observations into structured, reviewable environmental evidence.
Our guiding principle is:
AI observes. Rules validate. Humans decide.
Instead of asking a language model to decide whether a stream is "healthy" or "polluted," AquaGuard deliberately separates AI perception, deterministic assessment, environmental context, and human verification.
What AquaGuard AI Does
A citizen begins by submitting a freshwater observation containing:
- Geographic location
- Stream photograph
- Water colour and clarity
- Flow condition
- Vegetation condition
- Visible pollution
- Field notes
AquaGuard then processes the observation through an explainable assessment pipeline.
1. Multimodal Visual Analysis
AquaGuard uses multimodal AI to examine the submitted photograph and extract only visually observable environmental characteristics, including:
- Water appearance and clarity
- Visible turbidity indicators
- Floating waste and debris
- Foam or algae-like surface conditions
- Vegetation condition
- Flow characteristics
- Visible bank degradation or erosion
Before performing this analysis, AquaGuard checks whether freshwater is actually visible and whether the image contains sufficient evidence for assessment.
If visual evidence is insufficient, the system does not guess.
Importantly, AquaGuard does not claim to detect pathogens, bacteria, chemicals, pesticides, heavy metals, toxins, or other invisible contaminants from an image.
2. Citizen + AI Evidence Comparison
When comparable citizen-reported and visual-AI observations are available, AquaGuard evaluates their consistency.
Disagreements remain visible rather than being silently resolved by the AI.
This creates an additional layer of transparency: reviewers can see what the citizen reported, what the model observed, and where the two evidence sources differ.
3. Deterministic Environmental Screening
The language model does not calculate the environmental risk score.
A deterministic risk engine evaluates four interpretable components:
- P — Visible Pollution
- W — Water Condition
- V — Vegetation Degradation
- F — Flow Abnormality
The prototype screening score is:
$$ R = 0.35P + 0.25W + 0.20V + 0.20F $$
where each component is normalized from 0 to 100.
The resulting screening categories are:
- 0–24: Low
- 25–49: Moderate
- 50–74: High
- 75–100: Critical
AquaGuard also exposes the contribution of each component and its evidence source, making the result easier to inspect and audit.
This is intentionally presented as a prototype environmental screening score, not a scientifically validated water-quality index or laboratory diagnosis.
Environmental Intelligence Beyond a Single Observation
A single photograph rarely tells the entire environmental story.
AquaGuard is designed to combine observations with historical and environmental context, including:
- Previous observations at a monitoring site
- Historical screening-risk trends
- Rainfall and recent weather context
- Available official freshwater measurements
- Environmental change indicators
- Biodiversity occurrence context where available
The trend engine can compare recent observations against historical baselines and surface unusual deterioration patterns.
These are treated as early-warning signals, not predictions of pollution.
External evidence retains its source and timestamp so that official measurements, citizen observations, visual-AI findings, and contextual environmental data are not presented as if they were the same type of evidence.
Explainable AI
Generating a risk number is not enough.
AquaGuard's explanation layer communicates:
- What was observed
- Why the observation was flagged
- Which factors contributed to the screening score
- Where citizen and AI evidence disagree
- What has changed historically
- What environmental context is available
- What remains uncertain
- What requires human verification
- What cannot be concluded from the available evidence
The language model explains results that have already been calculated; it cannot silently override or recalculate the deterministic assessment.
Human-in-the-Loop Verification
AI-generated environmental assessments should support human judgment, not replace it.
Every AquaGuard assessment can be reviewed by a person using four decisions:
- Confirmed
- Corrected
- Rejected
- Needs Review
Reviewer notes and timestamps are preserved, creating a transparent path from the original citizen observation to AI-assisted assessment and final human verification.
Human-reviewed information is never silently overwritten by AI.
Responsible AI by Design
One of the most important lessons while building AquaGuard was that responsible AI is not simply adding a disclaimer to an AI-generated result. The architecture itself needs to represent uncertainty correctly.
We therefore designed several important invariants:
UNKNOWN ≠ HEALTHY
MISSING ≠ ZERO
NO COMPARISON ≠ 100% CONSISTENCY
AI FAILURE ≠ LOW RISK
If visual analysis fails, AquaGuard does not convert that failure into a low-risk assessment.
If evidence is missing, it remains missing.
If citizen and AI evidence cannot be compared, the system does not manufacture a consistency score.
These constraints became fundamental to the design of AquaGuard.
How We Built It
AquaGuard was developed as a full-stack environmental intelligence platform.
Backend
The backend is built with Python and FastAPI, using:
- SQLAlchemy 2.0 async
- Pydantic
- SQLite for development
- NumPy and Pandas
- HTTPX
- REST APIs
The backend is separated into services for visual analysis, evidence consistency, deterministic risk assessment, trend detection, environmental context, explanations, and human review.
Artificial Intelligence
Featherless AI powers the multimodal and language-model components.
The visual model is responsible for extracting structured observations from freshwater images.
The text model is used for evidence-aware explanations.
Neither model is allowed to determine the final numerical screening score.
Environmental Data
AquaGuard's environmental-context architecture supports data from sources such as:
- European environmental freshwater datasets
- Open-Meteo weather and rainfall data
- GBIF biodiversity occurrence data
Each evidence type remains separate and retains provenance.
Frontend
The interface was built using:
- React
- Vite
- Tailwind CSS
- Recharts
- Leaflet
- OpenStreetMap
The interface includes the citizen-observation workflow, environmental intelligence dashboard, assessment results, risk-contribution visualization, monitoring maps, alerts, trends, explainability panels, and human verification.
Challenges We Faced
Preventing AI Overreach
The biggest challenge was not getting an AI model to describe an image — it was deciding what the model should not be allowed to claim.
Environmental images cannot establish the presence of invisible contaminants. We therefore introduced explicit visual-evidence boundaries and an image-validity gate before environmental inference.
Representing Missing Evidence Correctly
During development, we found that missing AI evidence could easily produce misleading downstream values such as artificial confidence or consistency.
This led us to explicitly model unavailable, insufficient, and failed visual evidence rather than treating missing information as numerical zero.
Separating Intelligence From Decision Logic
It would have been easier to ask an LLM to return a risk level directly.
Instead, we separated perception from scoring. AI extracts evidence; deterministic engines perform calculations; AI explains those calculations; and humans verify the result.
This made the system more complex, but also significantly more transparent.
Combining Different Environmental Evidence
Citizen reports, AI observations, weather, historical measurements, biodiversity records, and human reviews have different meanings and levels of reliability.
Rather than collapsing everything into one opaque "AI score," AquaGuard preserves evidence type and provenance throughout the assessment.
What We Learned
Building AquaGuard changed our view of what responsible environmental AI should look like.
The most useful AI system is not necessarily the one making the most decisions.
For environmental monitoring, a more trustworthy system can be one that knows the boundaries of its evidence, exposes uncertainty, separates probabilistic AI from deterministic calculations, preserves provenance, and gives people the final decision.
AquaGuard therefore focuses on decision support rather than automated environmental judgment.
What's Next
AquaGuard is currently a hackathon prototype, but the architecture can be extended toward a larger freshwater-monitoring network.
Future development could include:
- Integration with additional official monitoring networks
- Sensor and IoT observations
- Improved site-level historical baselines
- Spatial environmental anomaly detection
- More advanced biodiversity context
- Expert-review workflows
- Field validation of screening rules
- Mobile citizen-science applications
- Scientifically calibrated environmental assessment models
Our long-term vision is to create a bridge between citizen science, environmental data, responsible AI, and human expertise — helping communities detect environmental changes earlier while keeping every automated conclusion explainable.
AquaGuard AI
Turning citizen freshwater observations into explainable environmental intelligence.
AI observes. Rules validate. Humans decide.
Built With
- fastapi
- featherless-ai
- gbif
- httpx
- leaflet.js
- llm
- multimodal-ai
- numpy
- open-meteo
- openstreetmap
- pandas
- pydantic
- python
- react
- recharts
- responsible-ai
- rest-api
- sqlalchemy
- sqlite
- tailwind-css
- vite
Log in or sign up for Devpost to join the conversation.