Skip to content
GeoEQ — geotechnical engineering software · Salt Lake City, UT

Our open source · Apache 2.0

We gave the profession our geotechnical Python package.

170+ validated functions for soil mechanics, site investigation and foundation design — free for commercial work, auditable line by line, installable with one command.

Our open source · Apache 2.0

Our geotechnical Python package is open source — and always will be.

geoeq is the engine inside our software, published for everyone. 170+ validated functions across soil classification, laboratory testing, site investigation, foundation design and soil dynamics — because an engineer should be able to read the equation behind any number they are asked to sign.

  • Free forever
  • Commercial use allowed
  • No account
  • Citable in research
170+
validated functions
Apache 2.0
licence — commercial use allowed
Python 3.9 – 3.13
supported
3
dependencies only
python

$ pip install geoeq

import geoeq as ge

# Bearing capacity of a shallow foundation
result = ge.bearing_capacity(
    c=25, gamma=18, Df=1.5, B=2,
    phi=30, method="meyerhof",
)
print(result["q_u"])   # ultimate bearing capacity, kPa

Flat API — every function at the top level. Depends on numpy · scipy · matplotlib.

Soil properties & classification

Index properties and group symbols computed the way the standards define them.

  • USCS (ASTM D2487)
  • AASHTO M145
  • Atterberg limits
  • USDA texture triangle

Laboratory testing

Reduce test data to the parameters a design actually consumes.

  • Grain size
  • Shear & triaxial
  • Consolidation
  • Compaction & permeability

Site investigation

Field measurements, corrections and correlations in one place.

  • SPT & N-value corrections
  • CPT
  • Vane & pressuremeter
  • DCP & pile load tests

Foundation & geotechnical design

The calculations behind a foundation report, with every step callable.

  • Bearing capacity
  • Settlement
  • Earth pressure
  • Piles & slope stability

Soil dynamics & earthquake engineering

Seismic screening on the same profile you logged in the field.

  • Liquefaction triggering
  • NCEER procedure
  • Idriss–Boulanger
  • Cyclic stress ratio

Stress, seepage & profiles

Layered profiles with the stress state resolved at any depth.

  • Total & effective stress
  • Pore pressure
  • Seepage
  • Layered profiles

Documentation at docs.geoeq.org · package home at geoeq.org · source at github.com/geoeq/geoeq

Why we opened it

A number you cannot check is a number you cannot defend.

Geotechnical practice runs on correlations, and most of them live inside spreadsheets nobody outside the office has ever read. We took the other route.

01

Because engineering should be checkable

Every function is public, so the method behind a bearing capacity or a liquefaction check can be read, questioned and corrected — by a reviewer, a client, or a student.

02

Because the profession gave it to us first

These procedures come from decades of published research. Implementing them behind a closed licence and selling the result back to the profession never sat right.

03

Because good tools should not depend on budget

A consultancy of one, a university lab and a global firm get the same engine. The desktop software is where we earn a living; the mathematics is not for sale.

Who it is for

When a library beats a spreadsheet.

A spreadsheet answers one question once. A tested function answers it every time, for every borehole, and can be checked by somebody else.

Consultants automating repetitive checks

Run the same bearing capacity or settlement calculation across every borehole on a site, in a script you can re-run when the data changes.

Researchers who must show their working

Publish the code alongside the paper. A reviewer can read the implementation of every correlation you used instead of taking a spreadsheet on trust.

Teams building internal tools

A permissive licence and three dependencies means it drops into an existing pipeline without a procurement conversation.

Engineers learning the methods

Each function is small and readable, so the library doubles as a worked reference for how a procedure is actually applied.

What it covers, in short

  • USCS (ASTM D2487)
  • AASHTO M145
  • Atterberg limits
  • USDA texture triangle
  • Grain size
  • Shear & triaxial
  • Consolidation
  • Compaction & permeability
  • SPT & N-value corrections
  • CPT
  • Vane & pressuremeter
  • DCP & pile load tests
  • Bearing capacity
  • Settlement
  • Earth pressure
  • Piles & slope stability
  • Liquefaction triggering
  • NCEER procedure
  • Idriss–Boulanger
  • Cyclic stress ratio
  • Total & effective stress
  • Pore pressure
  • Seepage
  • Layered profiles

Frequently asked questions

What is the geoeq Python package?

geoeq is a free and open-source geotechnical engineering library for Python. It provides more than 170 validated functions covering soil properties and classification, laboratory test reduction, site investigation interpretation, foundation design and soil dynamics, so that geotechnical calculations can be scripted, tested and version-controlled like any other code.

How do I install the geoeq geotechnical Python library?

Run pip install geoeq. It supports Python 3.9 through 3.13 and depends only on numpy, scipy and matplotlib, so it installs cleanly into an existing scientific Python environment.

Is geoeq free for commercial and consulting work?

Yes. geoeq is released under the Apache 2.0 licence, which permits personal, academic, commercial, consulting and enterprise use and includes an explicit patent grant. There is no licence fee and no usage restriction.

Which standards does the geoeq package follow?

Classification follows ASTM D2487 for the Unified Soil Classification System and AASHTO M145, with the USDA texture triangle also supported. Liquefaction assessment implements the NCEER and Idriss-Boulanger procedures. Each function documents the source it implements.

How does the Python package relate to GeoEQ desktop software?

They share the same engineering. The desktop programs — starting with GeoEQ SPT Logs — provide the interface, drawings and reporting an engineer needs, while the open-source package exposes the underlying calculations so they can be audited, cited in research and automated in your own pipelines.

Can I use geoeq for research and cite it?

Yes. The source is public on GitHub under Apache 2.0, so the implementation of every function can be inspected and referenced in a paper. Being able to point a reviewer at the exact code that produced a number is the main reason the library is open.

Get started

Prefer an interface to an import statement?

GeoEQ SPT Logs puts the field half of this workflow behind a desktop application — free for Windows.