Skip to main content

Geotechnical engineering toolkit for structural engineers

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geostructpy-0.3.1.tar.gz (38.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geostructpy-0.3.1-py3-none-any.whl (40.1 kB view details)

Uploaded Python 3

File details

Details for the file geostructpy-0.3.1.tar.gz.

File metadata

  • Download URL: geostructpy-0.3.1.tar.gz
  • Upload date:
  • Size: 38.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for geostructpy-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4454a4916abd2b33decbb133f34f25adb4bcc8ce8e8f1ce78b3ba49fd5fb21c6
MD5 08f9b5668227787202b137b2a2ddb60c
BLAKE2b-256 694ac8eb9a65c51d5196157494552eb9636929c7a9dccd95da76d0f145e4d841

See more details on using hashes here.

File details

Details for the file geostructpy-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: geostructpy-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 40.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for geostructpy-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b484d4d69a3707a7e8a8ce2112b13bdcbc7c58a84429db5eb70a5246b7512a96
MD5 d96c86aa82ff8d682d12df19a3b198fb
BLAKE2b-256 09fca636cd450d7b070b1a706974f87559e067c2624afdcac749deb96340cc48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page