Skip to content

Geotechnical engineering, solved in Python.

The complete onshore workflow — lab characterisation, site investigation, foundation design, soil dynamics, liquefaction — under one flat, validated, MIT-licensed API. 170+ functions. 563 tests. Zero magic.

PyPI version Python versions downloads stars MIT 563 tests
[Install  :fontawesome-solid-download:](getting-started/installation.md){ .md-button .md-button--primary } [Quick start  :material-rocket-launch:](getting-started/quick-start.md){ .md-button } [Tutorials  :material-book-open-page-variant:](tutorials/overview.md){ .md-button }

What is GeoEq?

geoeq is a Python package for geotechnical engineers, students, and researchers who would rather write code than babysit spreadsheets.

It collects the working set of textbook geotechnical formulas (Das · Bowles · Holtz & Kovacs · Budhu · Kramer), ASTM/BS/IS test procedures, and the simplified-procedure liquefaction analysis (Seed-Idriss · NCEER · Idriss-Boulanger) into one consistent, flat, validated, MIT-licensed library. Plain dictionaries in, plain dictionaries out. Every formula cites its source.

Python
import geoeq as ge

ge.density(Gs=2.65, e=0.72, kind="saturated", unit="kN/m3")        # 19.6 kN/m³
ge.spt_friction_angle(N=15, sigma_v=80, method="hatanaka")         # 33.2°
ge.bearing_capacity(c=10, gamma=18, Df=1, B=2, phi=30,
                    method="meyerhof")
ge.liquefaction_fos(CSR=0.20, CRR=0.18, Mw=7.0)                    # {'FS': 0.95, ...}

What is inside

A complete onshore geotechnical workflow under one flat namespace. 170+ validated functions across nine modules, each covering the methods routinely used in lab characterisation, ground investigation, foundation design, and seismic assessment.

  •   ge.soil — Properties & classification


    Phase relations, Atterberg, index properties, USCS, AASHTO, plasticity chart.

    Open

  •   ge.lab — Laboratory testing


    Particle size, direct shear, triaxial, oedometer, Proctor, permeability, CBR.

    Open

  •   ge.site — Site investigation


    SPT, CPT (Robertson SBT), field vane, pressuremeter, plate load, pile load, field permeability, DCP.

    Open

  •   ge.profile — Layered ground model


    SoilProfile with total / pore / effective stress, plotting, DataFrame export.

    Open

  •   ge.design — Engineering design


    Boussinesq, bearing capacity (4 methods), settlement, earth pressure, retaining walls, pile design, slope stability, seepage.

    Open

  •   ge.dynamics — Soil dynamics & liquefaction


    Small-strain modulus, Darendeli G/Gmax + damping, Seed-Idriss / NCEER / Idriss-Boulanger triggering.

    Open

  •   ge.io — Data I/O


    CSV, AGS4 (UK / AU / NZ), GEF-CPT (Netherlands), CPT container class.

    Open

  •   ge.viz — Publication plots


    Grain size, Proctor, Mohr, consolidation, SBT, bearing chart, isobars, Taylor, G/Gmax, liquefaction.

    Open


Design principles

  • Flat API. import geoeq as ge, then call functions. No deep import chains, no class hierarchies.
  • Validated inputs. Every function checks physical meaningfulness with engineer-readable errors.
  • Traceable formulas. Every docstring cites the textbook section or original paper.
  • No magic. Plain dict returns, Matplotlib figures. Slice, plot, feed into Pandas — whatever you would do with NumPy output.
  • Test-backed. 563 tests across 170+ functions. Textbook values are spot-checked.
  • Publication quality. 300 DPI figures, semi-log axes, shaded ASTM zones out of the box.
  • MIT forever. Commercial consulting, in-house tools, research, teaching. No exceptions.

Where to go next

Goal Page
Install and try in five minutes Quick start
See it work on a real problem Tutorials (25 chapters)
Browse the API by module User guide
Look up an exact function signature API reference
Understand the formulas Each module page cites its references; the full bibliography is at the bottom of every reference page