Skip to content
@GeoBrain-Project

GeoBrain

Geoscientific Bayesian Reasoning with Artificial Intelligence

Welcome to GeoBrain!

GeoBrain Project

Python PyTorch License Version

What is the GeoBrain Project?

GeoBrain is an open, modular, and extensible platform for Geoscientific Bayesian Reasoning with Artificial Intelligence, designed specifically for integrated subsurface modeling.

By combining differentiable physics, Bayesian inference, and deep learning, GeoBrain enables end-to-end workflows for subsurface characterization, from geomodeling and rock physics to geophysical simulation and inversion. Every forward model is a composable operator, every operator declares how it differentiates, and the same problem object serves a deterministic optimiser and a posterior sampler alike.

The core architecture

Four contracts make that possible. Everything else, from the physics families to the samplers to the neural parameterizations, is something you can add without touching them.

  • An operator is a contract, not a function. Every forward model is a ForwardOperator that declares a DifferentiabilitySpec: its trainable inputs, its outputs, and how its gradient is obtained (full autograd, an implicit adjoint, or a hand-written VJP). The declaration is machine-checked against finite differences, so "this is differentiable" is a statement the platform can be held to rather than a promise in a docstring.
  • Physics composes with @. Chain operators in series (Gravity2D(survey) @ GardnerOperator()), run them in parallel as an OperatorBundle, and the composition's contract is derived from its links: trainable inputs from the entry link, outputs from the terminal link, differentiability level the weakest of the members. A chain that cannot be honoured is refused when you build it, not when you run it.
  • A mesh declares capabilities; physics declares requirements. TensorMesh (uniform or graded), OctreeMesh and UnstructuredMesh each satisfy a set of named protocols (UniformMesh, StructuredMesh, GeometryMesh, PrismGeometryMesh, ConnectivityMesh), and each physics declares which it needs, so "this kernel cannot run on that mesh" is caught by the type system rather than by a wrong answer. A differentiable MeshProjection bridges them, which is what lets a joint inversion run the wave equation on a structured grid and gravity straight on triangles, and still return one gradient from one backward pass.
  • One problem, two doors. The same InverseProblem serves a deterministic optimiser (create_inverter().run()) and a posterior sampler (as_posterior().sample("nuts")). Uncertainty quantification is a method call on the object you already built, not a second pipeline that has to be kept in step with the first.

Key Features

  • Differentiable Multiphysics Modeling: geostatistics, rock physics, seismic, electromagnetics, potential fields and reservoir flow in one computational graph.
  • Automatic Differentiation: inversion without hand-crafted gradients. Where autograd is the wrong tool, an implicit adjoint or a custom VJP is declared and checked against finite differences.
  • Mesh Taxonomy with Capability Contracts: tensor, graded, octree and unstructured meshes; physics runs where it is allowed to run.
  • Deep Neural Network Integration: Deep Image Prior and latent-space reparameterizations that compose onto a physics chain like any other operator.
  • Bayesian Gradient-Informed Samplers: HMC, NUTS, Langevin and SVGD behind one Posterior, with change-of-variable transforms and R-hat / ESS diagnostics.
  • Geostatistics: the kriging family, sequential and indicator simulation, variogram fitting with diagnostics, declustering and transforms.
  • Decision Under Uncertainty: the efficacy of information of a proposed measurement, scored cell by cell from a prior ensemble. What to measure next, costed before it is measured.
  • Plug-and-Play Architecture: each physics module is self-contained and composable, so new physics goes in without rewriting core logic.

Getting Started

git clone https://github.com/GeoBrain-Project/GeoBrain.git
cd GeoBrain
pip install -e ".[examples]"

See the documentation for tutorials and API reference.

Pinned Loading

  1. GeoBrain GeoBrain Public

    An End-to-End Differentiable Platform for Integrated Subsurface Modeling

    Python 77 10

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…