Umfula Watch is a non-profit programme that places water-quality sensors along a river system and flags the changes that matter — a pH drop, a conductivity spike, a turbidity surge — hours before contaminated water reaches the people who depend on it.
A municipal or catchment-management team typically relies on scheduled grab sampling — a technician visiting a handful of points every one to four weeks — plus complaints from downstream users. Between visits, a spill, an illegal discharge, or a treatment-works failure can move a long way before anyone knows it happened.
Weekly or monthly grab samples cannot catch a discharge that starts and ends between two visits.
By the time a fish kill or an odour complaint is reported, the plume has often already passed the point where it could have been contained.
Lab turnaround for a full water-quality panel can take days, long after the operational decision — close an intake, notify a downstream user — needed to be made.
Umfula Watch does not replace laboratory testing — it tells the team exactly when and where to send a technician, and gives them a head start measured in hours, not days.
In-situ probes log pH, conductivity, turbidity, dissolved oxygen and temperature at each monitoring site, continuously.
A model trained on each site's normal daily and seasonal pattern flags departures that a fixed threshold would miss.
Field photos and existing incident reports are pulled in automatically to help explain what the sensors are showing.
An operator reviews the evidence and confidence score before anything is escalated or acted on.
Confirmed incidents trigger a notification to the relevant downstream users and a work order for sampling.
Confirmed and rejected alerts feed back into the anomaly model so it keeps matching this river's real behaviour.
This is the same path a technical reviewer would need to see to understand what is built, what is planned, and where each part of the system actually runs.
Rather than a rendered image, this is a live, interactive 3D model of the field sensor pod, built with WebGL (Three.js) and running directly in your browser. It is a standalone component, embedded here and reused unchanged inside the operator dashboard's "Sensor Pod" tab.
Rotate: click and drag anywhere on the model to spin it in 3D; scroll or pinch to zoom in and out.
Inspect a probe: click any coloured marker — pH, conductivity, turbidity, dissolved oxygen, or the solar panel — to read a plain-language explanation of what it measures and what it can't tell you on its own.
Simulate a reading: the Normal / Drifting / Alert buttons change the pod's status light in real time, the same light a field technician would see from the bank.
Exploded view: the toggle pulls every probe away from the housing so you can see how many independent sensors are packed into one unit.
The pod's housing, dome, base, antenna, and status ring are built from primitive 3D geometry (cylinders, a hemisphere, a torus) composed into one model — no external 3D file is loaded, so it renders instantly. A raycaster listens for clicks and tests them against each probe in 3D space, which is what makes the probes individually clickable rather than just decorative. Orbit controls handle the drag-to-rotate and scroll-to-zoom behaviour, and a small state machine drives the status light's colour and pulse speed to match Normal, Drifting, or Alert.
sensor-pod-3d.html is a self-contained file with its own styles and script — it does not depend on anything else on this site. That's deliberate: it can be dropped into the public page, the operator dashboard, a field-training handout, or a future mobile app, and it will behave identically everywhere it's placed.
The model is a teaching and monitoring surface, not a separate product — it sits at the "Sense" end of the loop described earlier and mirrors what the AI layer and dashboard already know.
In other words: the colour of the light you can trigger on the 3D model above is the exact same signal an operator sees in the Alert Center, driven by the exact same three-state logic. Today that light is driven by the buttons on this page; in production it is driven by the anomaly model reading real telemetry from AWS IoT Core. Nothing about the model itself needs to change when that switch happens — only where its data comes from.
No single model handles the whole pipeline. Tasks are routed by what each provider is strongest at, and every recommendation shown to an operator carries its evidence, a confidence score, and the model that produced it.
| Provider | Used for | Why this one |
|---|---|---|
| Claude (current Sonnet/Opus generation) | Reading historical incident reports and maintenance logs; producing structured recommendations with cited evidence | Strong long-context reasoning across many pages of prior reports for a single site |
| OpenAI GPT (current generation) | Plain-language explanations of a sensor anomaly for a non-specialist operator; structured data extraction from lab PDFs | Fast, reliable at turning structured readings into a clear written summary |
| OpenAI image model (current generation) | Technical diagrams of sensor placement and response procedure — never presented as photography | Produces on-brand illustrative diagrams without a mismatched stock image |
| Google Vertex AI (Gemini) | Reviewing field photos for visual signs of a discharge — foam, discolouration, dead vegetation — alongside site documents | Native multimodal reasoning across image and text in a single call |
| AWS (IoT Core, S3, Lambda) | Device connectivity, telemetry ingestion, storage, and hosting the anomaly-detection model | Mature managed IoT layer already used by most municipal utilities in the region |
Exact model identifiers are confirmed against each provider's current documentation at build time rather than carried over from an earlier project.
Each scenario below is a labelled simulation built from documented, real-world river-pollution failure patterns — not a record of an actual incident.
Conductivity and turbidity both rise sharply at a monitoring point downstream of a pump station, consistent with an untreated sewage overflow. The system correlates the timing with a reported power interruption in the area and recommends notifying the operations team before the plume reaches the next abstraction point.
pH drifts down slowly over six hours rather than spiking — a pattern easy to miss on a fixed-threshold alarm but clear against a learned baseline. Historical incident notes for the site point to a known industrial outfall upstream.
A sharp turbidity increase follows a rainfall event and matches the site's normal storm-response pattern, so the system classifies it as expected runoff rather than an incident — avoiding a false alarm that would waste a technician's day.
A dissolved-oxygen sensor shows the same overnight dip three nights running. Claude's review of the maintenance history flags this as a known biofouling pattern for this probe rather than a genuine water-quality event, and recommends a cleaning visit instead of an incident response.
Simulated telemetry, a live anomaly walkthrough, and the AI routing panel — clearly labelled, nothing pretending to be a real river.
Per river-monitoring zone, each reporting every 60–120 seconds. estimate
Across anomaly explanation, report analysis, and photo review, per zone. estimate
Per monitoring zone, covering connectivity, storage, and inference. estimate
Umfula Watch is a project of Visions2Reality Media, a South African non-profit company registered with the Companies and Intellectual Property Commission (CIPC).
Director, Visions2Reality Media NPC. Appointed 19 September 2025.
chantelle@vision2realitymedia.co.za
"We believe in this NGO because clean water shouldn't depend on luck — communities deserve to know what's flowing past their homes before it becomes a crisis."
Director, Visions2Reality Media NPC. Appointed 19 September 2025.
agisanang@vision2realitymedia.co.za
"What this NGO has to offer is simple but rare: real-time evidence that turns a suspicion into a response, before a river carries the problem out of reach."
For municipalities, catchment management agencies, and water utilities evaluating a pilot.