top of page

Model Creation

GemPy is a Python-based, open-source library for implicitly generating 3D structural geological models. It is aimed to provide a straightforward approach to creating models of complex scenarios and is capable of including many different features such as:

  • Stratigraphic sequences

  • Fold structures

  • Finite and infinite faults

  • Fault networks

  • Unconformities, erosive contacts and onlaps

  • Surface topography and lithological outcrops

Model Creation

How It Works

The implicit nature of GemPy's core algrotihm allows the user to automatically generate complex 3D structural geological models through the interpolation of input data in the form of:

  • Surface contact points: 3D coordinates of points marking the boundaries between different features (e.g. layer interfaces, fault planes, unconformities).

  • Orientation measurements: Orientation of the poles perpendicular to the dipping of surfaces at any point in the 3D space.


GemPy itself offers direct visualization of 2D model sections via matplotlib and in full, interactive 3D using the Visualization Toolkit (VTK). This allows for real-time manipulation data and the 3D model.

Models can also easily be exported, for example as NumPy or VTK files for further visualization and processing in other software such as ParaView.


Stochastic Methods

With its core based on the numerical computation library Theano, GemPy is designed to support an embedding of geological modeling in probabilistic frameworks. For this, we recommend the use of PyMC3, a library for probabilistic programming in Python.

The stochastic perspective allows for a better inclusion and examination of random variables via methods such as Monte Carlo simulation and Bayesian inference.

Stochastic Tutorials Coming Soon!

Uncertainty Analysis

A perfectly true representation of subsurface geology is virtually unattainable. That is why it is important to think about model uncertainties.

Using GemPy in a probabilistic framework, you can not only quantify such uncertainties via Monte Carlo simulation, but also to reduce them by incorporating secondary information via Bayesian inference and advanced MCMC sampling. You can even visualize probability fields and model uncertainties in 2D and 3D.


GemPy can help you better understand the quality of your model and the value of additional information.


Geophysical Inversion

Coming soon!

Geophysical Inversion

AR Sandbox

GemPy includes a module for visualizing geological models in an augmented reality environment using real sand. The topography of the sand surface is scanned via a Kinect, and an according outcrop of the GemPy-computed model is then projected back onto the sand. Best of all: The GemPy is fast enough to update the projection in real-time while you reshape the sand with your own hands!

So go ahead, be creative and explore your model!

Build mountains, carve valleys, find anticlines and trace fault surfaces! The AR Sandbox is perfect for public presentation and educational purposes.

AR Sandbox

Open Code

We believe in open source!

All of GemPy's code is open and free to use. You can easily customize or extend it according to your own needs. We encourage you to be an active member in our open-source community by reporting errors, giving us feedback and contributing your own modules to the GemPy library!

Open Code
bottom of page