Geotechnical engineering toolkit for structural engineers
Project description
GeoStructPy
Geotechnical Engineering Toolkit for Structural Engineers
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.
- Push to GitHub
- Connect to Railway
- Set root directory to
webapp/ - 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4454a4916abd2b33decbb133f34f25adb4bcc8ce8e8f1ce78b3ba49fd5fb21c6
|
|
| MD5 |
08f9b5668227787202b137b2a2ddb60c
|
|
| BLAKE2b-256 |
694ac8eb9a65c51d5196157494552eb9636929c7a9dccd95da76d0f145e4d841
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b484d4d69a3707a7e8a8ce2112b13bdcbc7c58a84429db5eb70a5246b7512a96
|
|
| MD5 |
d96c86aa82ff8d682d12df19a3b198fb
|
|
| BLAKE2b-256 |
09fca636cd450d7b070b1a706974f87559e067c2624afdcac749deb96340cc48
|