Python toolkit for LLM-based geotechnical engineering agents — 29 analysis modules covering foundations, piles, slopes, seismic (incl. FEMA P-2082 / 2020 NEHRP site classification), excavation support (incl. the California/Caltrans Trenching and Shoring Manual reference), pavements (incl. FHWA-NHI-05-037 Geotechnical Aspects of Pavements), subsurface characterization (DIGGS/GEF/AGS4 data I/O), FEM, PDF/DXF import, and more
Project description
GeotechStaffEngineer
Python toolkit for LLM-based geotechnical engineering agents. 29 analysis modules covering foundations, piles, slopes, seismic analysis, ground improvement, FEM, and more.
Installation
# Core package (numpy + scipy + geotech-references)
pip install geotech-staff-engineer
# With all optional agent libraries
pip install geotech-staff-engineer[full]
# Or install individual extras
pip install geotech-staff-engineer[plot,groundhog,opensees]
Quick Start
from bearing_capacity import Footing, SoilLayer, BearingSoilProfile, BearingCapacityAnalysis
footing = Footing(width=2.0, length=10.0, depth=1.5, shape="strip")
layer = SoilLayer(friction_angle=30.0, cohesion=10.0, unit_weight=18.0, thickness=10.0)
profile = BearingSoilProfile(layer1=layer, gwt_depth=5.0)
analysis = BearingCapacityAnalysis(footing=footing, soil=profile)
result = analysis.compute()
print(result.summary())
Modules
All units are SI (meters, kPa, kN, degrees). Every module returns dataclasses with .summary() and .to_dict() methods for easy LLM integration.
Core Analysis (19 modules)
| Module | Purpose |
|---|---|
bearing_capacity |
Shallow foundations — Vesic, Meyerhof, Hansen |
settlement |
Consolidation and immediate settlement |
axial_pile |
Driven pile capacity — Nordlund, Tomlinson, Beta |
sheet_pile |
Cantilever and anchored sheet pile walls |
soe |
Support of excavation — braced/cantilever walls, stability, ground anchors |
lateral_pile |
Lateral pile analysis — COM624P, 8 p-y models |
pile_group |
Rigid-cap pile groups — 6-DOF, efficiency factors |
wave_equation |
Smith 1-D wave equation — bearing graph, drivability |
drilled_shaft |
Drilled shaft capacity — GEC-10 alpha/beta/rock socket |
seismic_geotech |
Site classification, M-O pressures, SPT liquefaction (NCEER/Youd-2001) |
retaining_walls |
Cantilever and MSE retaining walls |
ground_improvement |
Aggregate piers, wick drains, vibro-compaction |
slope_stability |
Fellenius, Bishop, Spencer — circular slip, soil nails |
downdrag |
Neutral plane method, dragload estimation |
geotech_common |
Shared soil profile, adapters, plotting utilities |
calc_package |
Calculation package report generation |
subsurface_characterization |
Subsurface data I/O: DIGGS parser + Plotly visualizations + trend stats, plus optional format adapters for GEF/BRO-XML CPT/borehole (pygef), AGS4 (python-ags4), and DIGGS schema/dictionary validation (pydiggs) |
dxf_import |
DXF CAD import for slope stability geometry |
fem2d |
2D plane-strain FEM — CST/Q4/beam, MC/HS, SRM, seepage, consolidation |
Library Wrapper Agents (10 modules)
Each agent wraps a third-party geotechnical library with a dict-based API for LLM tool use.
| Module | Library | Purpose |
|---|---|---|
opensees_agent |
OpenSeesPy | PM4Sand cyclic DSS, 1D site response |
pystrata_agent |
pystrata | 1D equivalent-linear site response |
seismic_signals_agent |
eqsig + pyrotd | Earthquake signal processing |
liquepy_agent |
liquepy | Boulanger & Idriss (2014) liquefaction triggering — CPT (LPI/LSN/LDI) and SPT |
hvsrpy_agent |
hvsrpy | HVSR site characterization |
gstools_agent |
gstools | Geostatistical kriging and random fields |
salib_agent |
SALib | Sobol and Morris sensitivity analysis |
swprocess_agent |
swprocess | MASW surface wave dispersion |
pystra_agent |
pystra | FORM/SORM/Monte Carlo reliability |
groundhog_agent |
groundhog | Site investigation and soil mechanics |
The former
pygef_agent(pygef),ags4_agent(python-ags4), andpydiggs_agent(pydiggs) library wrappers were folded intosubsurface_characterizationas optional, dependency-backed format adapters — one module now covers ingest + validate + visualize across DIGGS, GEF/BRO-XML, and AGS4. Their optional dependencies remain installable (see Optional Extras).
Optional Extras
| Extra | Libraries |
|---|---|
plot |
matplotlib |
calc |
jinja2 |
groundhog |
groundhog |
opensees |
openseespy |
pystrata |
pystrata |
seismic-signals |
eqsig, pyrotd |
liquepy |
liquepy |
hvsrpy |
hvsrpy |
gstools |
gstools |
salib |
SALib |
swprocess |
swprocess |
pystra |
pystra |
subsurface |
pygef, python-ags4, pydiggs (subsurface_characterization format adapters) |
pygef |
pygef (alias) |
ags4 |
python-ags4 (alias) |
pydiggs |
pydiggs (alias) |
dxf |
ezdxf |
full |
All of the above |
Unified Liquefaction
Liquefaction triggering is exposed to the agent through a single liquefaction
tool that auto-routes by input type and method:
- CPT input (cone resistance
q_c/ sleeve frictionf_s) → Boulanger & Idriss (2014) CPT procedure vialiquepy, with LPI / LSN / LDI indices. - SPT input (
N160blow counts) → Boulanger & Idriss (2014) by default (method="bi2014"), or the legacy NCEER / Youd et al. (2001) simplified procedure viamethod="nceer2001"for code-compliance work that cites it.
B&I-2014 is the default for both. The underlying per-module functions remain
available directly: liquepy_agent.analyze_cpt_liquefaction /
analyze_spt_liquefaction (B&I-2014) and seismic_geotech.evaluate_liquefaction
(NCEER/Youd-2001 SPT). The SPT B&I-2014 path is composed from liquepy's tested
B&I-2014 building blocks — liquepy ships no packaged SPT triggering object.
Related Package
geotech-references — Digitized NAVFAC DM7 and FHWA GEC reference library (installed automatically as a dependency).
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geotech_staff_engineer-5.0.0.tar.gz.
File metadata
- Download URL: geotech_staff_engineer-5.0.0.tar.gz
- Upload date:
- Size: 683.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
934c384267d3180ef4c584940a1d1eac8c16505eac5356cdfa57a7264625164d
|
|
| MD5 |
1ef26b0f2545f23c771c30ab5ac4881a
|
|
| BLAKE2b-256 |
2ec1a922e4c39bdb1d4c5d9851aac0b0e80cd71378204039e7a48d8d14caf1c7
|
Provenance
The following attestation bundles were made for geotech_staff_engineer-5.0.0.tar.gz:
Publisher:
publish.yml on soconnell345-geotech/GeotechStaffEngineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotech_staff_engineer-5.0.0.tar.gz -
Subject digest:
934c384267d3180ef4c584940a1d1eac8c16505eac5356cdfa57a7264625164d - Sigstore transparency entry: 1771190677
- Sigstore integration time:
-
Permalink:
soconnell345-geotech/GeotechStaffEngineer@c87130dd5216a953386ce7106d0a80c81c20adab -
Branch / Tag:
refs/tags/v5.0.0 - Owner: https://github.com/soconnell345-geotech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c87130dd5216a953386ce7106d0a80c81c20adab -
Trigger Event:
push
-
Statement type:
File details
Details for the file geotech_staff_engineer-5.0.0-py3-none-any.whl.
File metadata
- Download URL: geotech_staff_engineer-5.0.0-py3-none-any.whl
- Upload date:
- Size: 821.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9d6c5d206fa0b901b208656b1610969a71262dad38ac8ee07e69b585a696bc2
|
|
| MD5 |
b48ad3b7c2b43be9197b9ae3bdf4690b
|
|
| BLAKE2b-256 |
090fbae8d6bb200994c15b6da05f1ea579a13a245e954c416048fb228d620a6e
|
Provenance
The following attestation bundles were made for geotech_staff_engineer-5.0.0-py3-none-any.whl:
Publisher:
publish.yml on soconnell345-geotech/GeotechStaffEngineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geotech_staff_engineer-5.0.0-py3-none-any.whl -
Subject digest:
f9d6c5d206fa0b901b208656b1610969a71262dad38ac8ee07e69b585a696bc2 - Sigstore transparency entry: 1771190734
- Sigstore integration time:
-
Permalink:
soconnell345-geotech/GeotechStaffEngineer@c87130dd5216a953386ce7106d0a80c81c20adab -
Branch / Tag:
refs/tags/v5.0.0 - Owner: https://github.com/soconnell345-geotech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c87130dd5216a953386ce7106d0a80c81c20adab -
Trigger Event:
push
-
Statement type: