Search

Search work, writing, and fragments.

project / 2026

Applied ML / decision support

Fluvius Predict

An uncertainty-aware hydropower decision system that turns ground-sensed river data, weather and melt signals, and plant availability into discharge forecasts and safer energy commitments.

  • built with Python / LightGBM / PyTorch / FastAPI / React 19 / TypeScript
  • visit Open project ↗

notes on the build

The decision behind the dashboard

Run-of-river hydropower operators do not only need to know how much water is moving through a river. They must decide how much energy they can safely commit before delivery.

That decision sits between two losses. Commit too little and usable generation is left unsold. Commit too much and weak flow or unavailable machinery can turn the shortfall into a penalty. Historical averages alone do not capture a riverbed reshaped by monsoon sediment, a dry season driven by snow and soil conditions, or a turbine being derated by vibration and bearing heat.

Fluvius Predict was built around that decision rather than around the charts.

From the river to a commitment

The system begins with a ground-sensing concept for stage and velocity. A digital cross-section reconstructs the river geometry and computes discharge from wetted area and measured flow. Weather, snow, soil moisture, and glacier signals then provide the wider basin context.

The forecasting path combines quantile LightGBM with a regional LSTM pooled across Nepal’s major basins. A purged rolling-origin evaluation keeps later observations out of earlier training windows, while conformal calibration turns the model output into explicit uncertainty ranges instead of a single confident-looking number.

Those forecasts are carried forward into the operator’s actual decision:

  • 1-, 3-, and 7-day discharge ranges
  • 30-day energy estimates across lower, central, and upper scenarios
  • a conservative commitment derived from the calibrated P25 estimate
  • availability adjustments for vibration, bearing temperature, and sensor confidence
  • an explanation of the forecast drivers and the reason for the safety buffer

The operator still approves the final declaration. Fluvius Predict is decision support, not an autonomous commercial agent.

What we built

The build joins a Python forecasting pipeline and FastAPI inference contract with a React and TypeScript control surface. The interface includes a live river and riverbed twin, flow-duration and stage-discharge views, machine-health derating, holdout verification against persistence and climatology baselines, and the final commitment recommendation.

The useful part is the handoff between layers. River sensing is not presented as an isolated hardware demo, and the forecast is not left as an ML score. Both end in a decision an operator can inspect.

JunctionX Kathmandu

We built Fluvius Predict as Team Pikachu for JunctionX Kathmandu 2026. It won the Hydropower & Sustainable Energy Track and the overall competition, earning the team a Golden Ticket to represent Nepal at the global Junction stage in Finland.

What made the project worth keeping was not the result alone. It was the attempt to connect physical sensing, forecast uncertainty, machine condition, and commercial responsibility in one traceable system.

what mattered

  • Combines ground-sensed stage and velocity with weather, snow, soil, and glacier signals.
  • Produces 1-, 3-, and 7-day discharge ranges plus a 30-day energy forecast.
  • Converts calibrated uncertainty into a buffered commitment adjusted for machine availability and data quality.
  • Won both the overall prize and the Hydropower & Sustainable Energy Track at JunctionX Kathmandu 2026.

next project

TestLoom ↗