HEALTHY
95
CYCLES LEFT
Engine demo — RUL 95
failure (0) now: 95 cycles left healthy (125+)
Red line = the maintenance threshold (20 cycles). Act while the bar is still above it.
drag to explore
▶ Open the live app

See it: the engine's remaining life, live

This is the heart of the RUL Explorer, running right here on the page — no video, no image, just inline SVG. Drag the slider (or press Play degradation) and watch the engine age: the fan slows, the combustor reddens, and the health verdict flips HEALTHYCAUTIONCRITICAL as the remaining cycles drain toward the maintenance line. "This engine is running out of life" becomes something you see.

Role
Solo — data engineering, ML, visual application
Dataset
NASA C-MAPSS turbofan (FD001–FD004, run-to-failure)
Stack
Python, pandas, scikit-learn, XGBoost, LightGBM, CatBoost, Streamlit
Best so far
FD001 Extra Trees — RMSE 16.96 · FD002 Random Forest — RMSE 16.14
Status
Research — all four fleets benchmarked (FD001–FD004)

A jet engine does not fail without warning — it degrades, cycle by cycle, and its sensors carry the signature of that decline. The question this project answers is the one a maintenance planner actually asks: how many cycles of useful life are left before this engine crosses into unsafe territory? Not a stop/go flag, but a countdown — so an engine can be pulled for service while it is still healthy, rather than discovered too late.

The data

Source: NASA's C-MAPSS (Commercial Modular Aero-Propulsion System Simulation) turbofan degradation benchmark — the standard dataset for prognostics research. It ships as four sub-datasets that get progressively harder, differing in how many operating conditions the engines run under and how many fault modes can develop:

FleetOperating conditionsFault modesWhy it's harder
FD00111Cleanest — one regime, one failure path
FD00261Six regimes muddy the sensor signal
FD00312Two competing degradation modes
FD00462Hardest — six regimes and two faults

Each engine is a run-to-failure trajectory of 21 sensor channels and 3 operating settings; the target is the remaining useful life at every point along the way. Following standard practice, RUL is piecewise-linear capped (an engine far from failure is simply "healthy", so the label is clipped at a ceiling of ~125 cycles) — degradation is only meaningfully predictable once wear actually begins.

Eight regressors, four separate leaderboards

Every fleet was benchmarked with the same eight regressors, each tuned by a genuine hyperparameter search inside the reusable AEGIS model-execution framework: Ridge, HistGradientBoosting, LightGBM, XGBoost, CatBoost, Random Forest, Extra Trees, and SVR. Two deliberate discipline choices shape how the results are read:

Never pooled — one leaderboard per fleet. FD001 and FD002 are different physical problems (one regime versus six), so mixing their errors into a single ranking would be meaningless. Each sub-dataset gets its own RMSE-ranked leaderboard, and the champion is named per fleet — not a single flattering average.
Ranked on RMSE and the NASA prognostics score. RMSE measures raw accuracy, but the NASA score is asymmetric — it punishes a late prediction (saying an engine has more life than it does) far more harshly than an early one, because in the real world a late call is the dangerous one. Both are reported, so a model that is accurate and fails safe is visible.

FD001 — the clean regime (7 of 8 models)

One operating condition, one fault mode. The tree ensembles cluster tightly at the top; Extra Trees leads. (SVR is O(n²) and still completing on the full search — reported when done rather than rushed.)

RankModelRMSEMAENASA score
1Extra Trees16.9611.850.821823.9
2LightGBM17.1611.920.817802.0
3CatBoost17.1612.000.817889.0
4Random Forest17.2112.060.816859.5
5XGBoost17.3211.950.813887.2
6HistGradientBoosting17.6212.300.807864.5
7Ridge (linear baseline)20.8816.470.7281312.2

FD002 — six operating regimes (7 of 7 models)

Six operating conditions make the sensor signal far noisier — yet the gradient-boosted and tree ensembles actually score a lower RMSE here than on FD001, because there is far more data to learn the regimes from. Random Forest takes it, with CatBoost a whisker behind. (SVR is skipped on the six-regime sets by design — it is prohibitively slow on ~50–60k rows; all seven applicable models completed.)

RankModelRMSEMAENASA score
1Random Forest16.1411.990.8591586.7
2CatBoost16.1911.880.8581586.6
3Extra Trees16.2112.130.8571679.0
4XGBoost16.2411.880.8571612.6
5LightGBM16.3311.890.8551619.0
6HistGradientBoosting16.4711.950.8531635.8
7Ridge (linear baseline)18.1514.070.8211589.9

FD003 — two fault modes, one operating condition

One operating condition but two competing degradation modes (HPC + Fan). The tree ensembles lead again and cluster tightly at the top — Random Forest takes it, Extra Trees a hair behind. All eight models completed.

RankModelRMSEMAENASA score
1Random Forest18.9313.330.7671601
2Extra Trees19.0613.260.7631784
3CatBoost19.5714.040.7501750
4HistGradientBoosting19.8513.800.7431834
5LightGBM19.9213.970.7411830
6XGBoost20.0514.260.7381970
7Ridge (linear baseline)20.7315.880.7201671
8Support Vector Regressor22.3015.110.6763160

FD004 — the hardest fleet (5 of 7 models)

Six operating regimes and two fault modes — the toughest board of all. In the deep FULL search, Random Forest and Extra Trees did not finish (Random Forest was pulled for being pathologically slow on this set), so among the completed models CatBoost leads. The complete short-run benchmark crowns Random Forest (RMSE 18.68) as FD004's true champion — noted honestly rather than hidden.

RankModelRMSEMAENASA score
1CatBoost18.8813.790.8072733
2HistGradientBoosting19.3213.990.7982967
3XGBoost19.4014.130.7963025
4LightGBM19.4314.120.7963164
5Ridge (linear baseline)20.8516.560.7652404

Why the visual matters

A prognostics model's output is a number, and numbers are easy to nod at and ignore. Binding that number to a living engine — colour, spin, glow, a draining bar against a hard maintenance line — turns "RUL = 18" into an unmistakable "pull this engine now." The point of the whole project is pre-emptive action, and the interface is built to make that action feel urgent at exactly the right moment, and calm when there is still runway.

Engineering rigor

Separate leaderboards, honestly named. Four fleets, four rankings — no pooling of physically different problems into one flattering average.
The right cost function. The NASA asymmetric score is reported alongside RMSE precisely because, for a jet engine, a prediction that is late is far more dangerous than one that is early.
The linear baseline stays in. Ridge regression is kept in last place on every board rather than dropped — an honest benchmark shows how far a simple model gets, and how much the ensembles actually earn.
Resume-safe by design. The framework checkpoints every model, so a multi-day run survives interruption — exactly how FD004's deep search was managed. All four fleets are now benchmarked; FD004 reports the 5 of 7 models that finished, with the unfinished two flagged rather than estimated.
📬 Get new-app alerts Contact us