OgbonLab Back to the library

For educators

Free textbooks for the subsurface curriculum, from rock physics and seismic through reservoir simulation to the machine learning the field now runs on. Every figure is a working instrument, and the whole library keeps running after the wifi drops.

Every figure is a working instrument

The library covers petrophysics, rock physics, seismic acquisition, processing and interpretation, geomechanics, reservoir modeling and simulation, geostatistics and statistics, and a full course in machine learning for geoscientists. The mathematics underneath is here too: algebra, proof, analysis.

No figure is a picture of a result. Your students pick the fault, track the horizon, separate a velocity artefact from a real structure, and flood a reservoir they built themselves. One synthetic well, Ogbon-1, runs through several of the books, so the porosity they compute in petrophysics governs the seismic response they model three books later. Our bias, for what it is worth: nobody really understands fluid substitution until a slider has surprised them.

The figures below were recorded from live sections. Open any of them and you get the same controls.

Three panels. On the left, two stacks of clay layers side by side, the right-hand one collapsed and labelled with its illite fraction, a bracket marking the water driven out. In the middle, a half-life curve falling steeply against temperature on a log axis. On the right, illite fraction against depth, with a marker at the half-converted point and a temperature scale down the right edge.
Geomechanics

Smectite converts to illite as it warms, and every interlayer that snaps shut around potassium expels the water it was holding. Sweep the geothermal gradient and the transition slides kilometres up and down the section, yet it stays pinned to the same temperature on the scale at the right, because the reaction keeps time in heat rather than in burial. Which is why one basin gives up that water at two kilometres and another at five, and why the depth where the overpressure starts is not a number you can carry between fields.

One of them goes further than the rest. Everything above is a widget computing a result. This one is running an algorithm that the industry books cluster time on.

Two velocity panels, blue for slow through red for fast. The upper one is the Marmousi model, its layers dipping and stepping across faults. The lower one is the inversion's current estimate, much smoother, with a bright adjoint wavefield sweeping through it while the iteration counter climbs.
3D Seismic Interpretation

The upper panel is a window of Marmousi2, the field's standard benchmark. The lower one is what the inversion currently believes, computed in the page: a 2D acoustic wave equation solved by finite differences, the residual back-propagated through the exact discrete adjoint of that scheme, and the gradient formed by correlating the two wavefields. No server, nothing pre-computed. Students run it twice from the same poor starting model: inverting the 2.4 Hz band alone takes the misfit down by a third and ends further from the truth than it started, while the low-to-high schedule from that identical start halves the error. A falling misfit is not evidence that an inversion is working, which is a hard thing to teach from a picture.

Three misfit curves on log axes, one per frequency band, falling 98, 67 and 21 per cent. Beneath them, one shot gather three ways: the observed data filtered to the current band, the synthetic the current model predicts, and their difference, which is faint and nearly grey.
3D Seismic Interpretation

The same lab's instrument panel. Each frequency band gets its own misfit curve, log scale, one point per accepted iteration, and the three drops tell the multi-scale story: the 1.0 Hz band does nearly all the work, and by 2.4 Hz the model is mostly right and the misfit barely moves. Below, one shot gather three ways: the observed data re-filtered to the current band, the synthetic the current model predicts, and their difference. The difference panel is the honest one. It is the thing the inversion actually minimises, and watching it fade toward grey is what a falling misfit number looks like when it is telling the truth.

Machine learning, and where the labels come from

The machine learning here is a course, not a closing chapter. Sixteen chapters run from gradient descent implemented from scratch, through linear and logistic regression, k-nearest neighbours, naive Bayes, decision trees and random forests, feature engineering, the bias-variance tradeoff and dimensionality reduction, and on to perceptrons, convolutional networks, recurrent networks and autoencoders. Every one of them is taught on earth and subsurface data rather than on the iris dataset. A second book covers physics-informed neural networks for exploration seismology, and the statistics the whole thing rests on has a book of its own, as does geostatistics.

Python runs in the page. Students write NumPy, pandas and matplotlib in the browser and it executes there, with nothing to install and no lab machine to book.

The hard part of geoscience machine learning is rarely the model. It is the labelled data. Hand-picked interpretations are expensive, and there are never enough of them to train on. A synthetic carries its labels for free, because the fault in the image is the fault you drew.

Two rows of four panels. The top row shows noisy grey modelled seismic sections with folded, faulted reflectors. The bottom row shows the matching labels: thin white lines on black marking exactly where each fault cuts.
Notebook: the fault-detection dataset

Sections and their labels, generated a batch at a time. The seismic is noisy and the beds are folded and faulted the way real data is, and the mask beside each one marks the faults exactly, because they are the faults the model drew. Regenerate, and again, until the network has enough. This is the notebook running, and it writes the set out as a NumPy array.

And eight notebooks, when the browser is not the point

Some of this belongs in a notebook rather than in a page. There are eight, on GitHub, each opening straight into Colab on the free tier: the convolutional synthetic and the well tie, wedge tuning, AVO and Gassmann for a direct hydrocarbon indicator, azimuthal AVO over a fractured reservoir, the fault-detection training set, a 4D time-lapse over a CO₂ plume, an acoustic finite-difference lab, and a field-realistic section that ties the rest together. Each one is self-contained, needs nothing but NumPy and matplotlib, and generates its own data, so there is no dataset to chase and nothing to license. Assign one as a lab, or lift the code into your own.

The figures here were made by running that code rather than by drawing a picture of it. The earth below is the notebook's own model, with the fold amplitude and the fault throw wound back to zero and grown.

Two panels. On the left an earth model coloured by acoustic impedance in depth, its layers folded into an anticline, cut by normal faults and truncated across the crest by an angular unconformity. On the right the seismic image in two-way time that the same model produces at a signal-to-noise ratio of 5.
Notebook: the field-realistic section

The anticline grows, then the faults slip, and the image on the right follows. Watch the crest plane off against the unconformity as it rises into it, which is how the reservoir sand ends up subcropping right at the top of the structure. Nothing here is drawn: the right panel is the left panel convolved, after a per-trace conversion to time and band-limited noise at survey quality.

Two panels. On the left, a snapshot of an acoustic wavefield in red and blue expanding through a layered earth and reflecting off its interfaces. On the right, the surface record filling in beneath it, showing the diffraction hyperbolae.
Notebook: the acoustic finite-difference lab

Finite-difference propagation, one time step at a time, with the surface record building underneath. Every discontinuity the wave meets throws a diffraction, and the record fills with them long before anything looks like a reflector. Students who have only ever seen a migrated section find this one clarifying, because migration is the operation that collapses exactly what they are watching accumulate.

Three seismic panels. A baseline survey and a monitor survey, near-identical folded and faulted sections in grey. The third is their difference, mostly faint repeatability noise, with a strong red and blue anomaly at the crest of the fold where the plume sits.
Notebook: the 4D time-lapse

A baseline survey, a monitor survey shot after injection, and the difference between them. The static geology cancels and what is left is the plume, sitting conformal to the crest. The saturation climbs from almost nothing, and for much of that climb the difference panel is only survey repeatability noise. Deciding where along that climb the plume becomes detectable is the whole job, and it has to be done before anyone pays to shoot the monitor.

Guided paths you can assign

A path places a student, then lays out a sequence of sections with checkpoints that grade the work as they go. What accumulates is a ledger of what the student actually did rather than a row of completion ticks. Assign one the way you would assign a reading list; the pacing and the marking come with it.

There is no instructor dashboard yet. Each student sees their own ledger, and you will not see the class at a glance. If that gap is the thing standing between this and your course, write and say so. Instructor demand is what will schedule it.

Practicalities

Using it in your course

The lecture content is licensed CC BY-NC-SA 4.0. Assign it, project it in class, adapt excerpts for your own teaching, all with attribution. Widget share links carry a configured widget into a slide or an assignment page, so you can hand students the exact figure, set the exact way you want them to meet it first.

Browse the library or the guided paths. We also keep a curated guide to free geoscience learning resources across the wider web, ours and everyone else's.

Or start from a live topic your course already covers: fluid substitution, variograms, the well tie.

Send us a syllabus

Mail one to lab@ogbonlab.com and we will build a path to match it, usually inside a couple of days, at no cost. We are a small team, so the person who reads that message is the person who will build the path.