Interactive petroleum-engineering portfolio

Test a simulated coreflood treatment scenario.

This case study turns a petroleum-engineering research question into an end-to-end ML product. Explore how thermal conditions, wax-prone crude and injection design shape predicted oil recovery and cooling-damage risk.

2frozen ML pipelines
21validated inputs

Why this project exists

From an engineering question to a deployable ML system.

Cooling wax-prone crude can precipitate solids, restrict pore flow and change the response to a chemical treatment. This project investigates whether a physics-informed synthetic coreflood dataset can support repeatable estimates when experimental records are limited.

01 · Engineering problem

Cooling can alter flow.

Wax onset, viscosity, wettability and injection conditions interact nonlinearly, making a single hand calculation insufficient.

02 · ML framing

Two related predictions.

XGBoost estimates oil recovery as a continuous value. Multinomial Logistic Regression estimates low, moderate or high damage.

03 · Portfolio evidence

More than a calculator.

The interface is the final layer of a documented workflow covering data design, quality, leakage control, model comparison and deployment.

Skills demonstrated

  • Physics-informed data design
  • Blind data-quality assessment
  • Leakage-safe preprocessing
  • Group-aware validation
  • Regression & classification
  • Production inference
Demonstration boundary

The data are synthetic and physics-informed, created for portfolio demonstration. Predictions illustrate ML practice and do not replace laboratory validation or field engineering decisions.

How the project was built

Eight controlled steps from study concept to live inference.

The result shown below is produced only after the data, preprocessing and candidate models have passed separate quality and validation gates.

  1. 01
    Frame the problem

    Translate the cooling-damage study into recovery regression and damage-class classification tasks.

  2. 02
    Design canonical data

    Specify one simulated coreflood per row, with units, ranges, correlations and physical constraints.

  3. 03
    Emulate raw records

    Add controlled missingness, duplicates, label inconsistencies, unit errors, outliers and batch effects.

  4. 04
    Assess quality blindly

    Use EDA to identify suspected issues without consulting the hidden clean data or issue map.

  5. 05
    Clean & split safely

    Correct approved issues and separate train, validation and test data by core family to prevent leakage.

  6. 06
    Compare candidates

    Evaluate baselines, linear models, Random Forest and XGBoost with fold-specific preprocessing.

  7. 07
    Freeze final models

    Select on validation, evaluate once on sealed test data, then approve XGBoost and Logistic Regression.

  8. 08
    Serve & demonstrate

    Package the frozen pipelines behind a validated API and expose them through this interactive experience.

Quick start

Choose an example scenario

Scenario builder

Coreflood inputs

Checking schema
01 / Rock systemCore & initial stateGeometry and pre-flood petrophysical conditions.+
cm

Core plug diameter.Range 2.422.5

cm

Core plug length.Range 4.85.1

%

Initial pore-volume fraction.Range 1422

mD

Initial absolute permeability.Range 1040

% PV

Oil-filled share of pore volume.Range 5585

MPa

Applied pressure around the core.Range 79

02 / Crude characterOil & interfaceWax tendency, fluid properties and wettability.+
g/cm³

Reference crude-oil density.Range 0.840.92

wt%

Crude-oil wax fraction by mass.Range 1535

°C

Wax precipitation onset measured by DSC.Range 3565

°C

Temperature where rheology departs from warm behavior.Range 2050

mPa·s

Reference viscosity used to derive test-temperature viscosity.Range 1580

degrees

Oil-drop contact angle before treatment.Range 3580

mg/L

Dissolved mineral concentration.Range 120000175000

03 / Experiment designTemperature & injectionCoreflood operating condition and injected treatment.+
°C

Coreflood temperature.Range 2095

Position in the paired study design, not a universal threshold.

Treatment fluid entering the core.

wt%

Must be zero for formation water.Range 00.1

mL/min

Volumetric injection rate.Range 0.050.2

PV

Treatment volume expressed as pore volumes.

Ready for inferenceModels remain sealed during every request.

Behind the result

One request, two model decisions.

Every scenario passes through the same guarded service boundary. The web layer displays results; it never fits, tunes or alters a model.

  1. 01
    Validate

    Ranges, categorical values and cross-field physics checks.

  2. 02
    Transform

    Each pipeline applies only its frozen train-fitted preprocessing.

  3. 03
    Infer

    XGBoost predicts recovery; Logistic Regression predicts damage class.

  4. 04
    Explain

    Probabilities, derived values, provenance and warnings are returned together.