Skip to main content

GeoStructPy

Geotechnical Engineering Toolkit for Structural Engineers

PyPI version License Contributions welcome

GeoStructPy is an open-source Python web application and library for geotechnical engineering calculations, built for the APEC Consultancy team. It provides 10 interactive modules covering bearing capacity, earth pressure, pile design, slope analysis, and borehole data processing.


Modules

Module Category Description
Terzaghi Foundation Bearing capacity for strip, square, and circular footings
Meyerhof Foundation Bearing capacity with shape, depth, and inclination factors
Mononobe-Okabe Earth Pressure Seismic active/passive earth pressure for retaining walls
Wall Stability Earth Pressure Retaining wall sliding, overturning, and eccentricity checks
Micropile Deep Foundation Micropile design per NSCP 2015, AISC 14th Ed., ACI 318-14/19
Bored Pile Deep Foundation Bored pile capacity from rock UCS, RQD, and structural checks
Slope Stability Slope Midas GTS NX material parameters derived from borehole data
SPT & UCS Charts Borehole SPT N-value, N60, and UCS vs. Depth graph maker with JSON import
Borehole Log Borehole AI-powered borehole log digitizer with soil profiles and charts
Theory & Notes Reference Technical background and equations

For detailed theory, equations, and step-by-step tutorials for each module, see the Wiki.


Running the App

Local Development

cd webapp
pip install -r requirements.txt
python app.py

Open http://localhost:8080.

Production (Railway)

The webapp/ directory is Railway-ready with Procfile, requirements.txt, and runtime.txt.

  1. Push to GitHub
  2. Connect to Railway
  3. Set root directory to webapp/
  4. Railway auto-detects the Procfile and deploys with Gunicorn

Environment Variables

Variable Required Description
ANTHROPIC_API_KEY Optional Enables AI-powered borehole log extraction. Without it, use the free copy-paste method.
PORT Auto Set by Railway/Heroku. Defaults to 8080 locally.

Project Structure

webapp/
  app.py                # Flask routes and form processing
  requirements.txt      # Flask, Gunicorn, Anthropic SDK, python-dotenv
  Procfile              # Railway/Heroku entry point
  runtime.txt           # Python 3.12.8
  calculators/
    terzaghi.py         # Terzaghi bearing capacity
    meyerhof.py         # Meyerhof bearing capacity
    mononobe_okabe.py   # Seismic earth pressure
    stability.py        # Retaining wall stability
    micropile.py        # Micropile design
    bored_pile.py       # Bored pile capacity
    slope_stability.py  # Slope parameters and charts
    spt_depth.py        # SPT/N60/UCS chart generator
    borehole_log.py     # Borehole log processing and AI extraction
  templates/
    base.html           # Shared layout, navbar, APEC disclaimer, print CSS
    index.html          # Dashboard with module cards
    terzaghi.html       # Terzaghi calculator
    meyerhof.html       # Meyerhof calculator
    mononobe_okabe.html # Mononobe-Okabe calculator
    stability.html      # Wall stability analysis
    micropile.html      # Micropile design
    bored_pile.html     # Bored pile design
    slope_stability.html # Slope stability analysis
    spt_ucs.html        # SPT & UCS chart maker
    borehole_log.html   # Borehole log digitizer
    theory.html         # Technical notes
    changelog.html      # Version history

Python Library

Install the core library for use in scripts:

pip install geostructpy

See the PyPI page for API documentation.


References

  • Terzaghi, K. (1943). Theoretical Soil Mechanics. Wiley.
  • Meyerhof, G.G. (1963). Some recent research on the bearing capacity of foundations. Canadian Geotechnical Journal, 1(1), 16-26.
  • Das, B., Sivakugan, N. (2017). Principles of Foundation Engineering (9th ed.). Cengage.
  • Poulos, H. (2017). Tall Building Foundation Design. CRC Press.
  • Bowles, J.E. (1987). Elastic foundation settlements on sand deposits. J. Geotech. Eng., ASCE.
  • Vesic, A.S. (1973). Analysis of ultimate loads of shallow foundations. J. Soil Mech. Found. Div., ASCE.
  • Chao, G. (2019). CE75.05 Geotechnical Engineering for Tall Buildings Lecture Notes, AIT, Thailand.

About the Developer

Albert Pamonag, M.Eng | APEC Consultancy

  • Professional Master of Structural Design in Tall Buildings (PMTB), Asian Institute of Technology (AIT), Thailand
  • Master of Engineering in Civil Engineering (Structural Engineering), De La Salle University - Manila
  • Contact: albertpamonag@gmail.com

Disclaimer

This tool is intended for use by the APEC Consultancy team for preliminary geotechnical calculations only. The developers assume no liability for design decisions made based on the output of this application. All results must be verified by a qualified geotechnical or structural engineer before use in any project.

License

See LICENSE for details. Contributions and feedback are welcome.

Metadata

Release files for geostructpy 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geostructpy 0.3.1
File Size Uploaded
geostructpy-0.3.1.tar.gz 38.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for geostructpy 0.3.1
File Interpreter ABI Platform
geostructpy-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 78.6 kB

Release files / geostructpy-0.3.1.tar.gz

Download URL geostructpy-0.3.1.tar.gz
Size 38.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4454a4916abd2b33decbb133f34f25adb4bcc8ce8e8f1ce78b3ba49fd5fb21c6
BLAKE2b-256 checksum
How to use checksums
694ac8eb9a65c51d5196157494552eb9636929c7a9dccd95da76d0f145e4d841
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / geostructpy-0.3.1-py3-none-any.whl

Download URL geostructpy-0.3.1-py3-none-any.whl
Size 40.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b484d4d69a3707a7e8a8ce2112b13bdcbc7c58a84429db5eb70a5246b7512a96
BLAKE2b-256 checksum
How to use checksums
09fca636cd450d7b070b1a706974f87559e067c2624afdcac749deb96340cc48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page