Open-source reinforced concrete design library with web interface (ACI 318-19, NSCP 2015, ACI 440R-17)
Project description
ConcreteDesignPy
A Python library and web application for reinforced concrete structural design per NSCP 2015 and ACI 318-19.
Disclaimer: This is an internal tool for Albert Pamonag Engineering Consultancy (APEC). All results must be verified by a licensed professional engineer. The developers assume no liability for errors or misuse.
Features
Beam Design
- Flexural Capacity — Strain compatibility method with iterative neutral axis solver, strength reduction factor (phi) plot per ACI 318-19 Table 21.2.2
- Shear Strength — Concrete and steel shear capacity, stirrup spacing design with Excel export (ACI 318M-14)
- Torsion Design — Combined shear-torsion interaction checks
- Deflection — Immediate and long-term deflection with effective moment of inertia
Column Design
- P-M Interaction — Strain compatibility analysis with Plotly interaction diagrams, load combination overlay
- Minimum Flexural Strength — Column-to-beam strength ratio verification
Analysis Tools
- Moment-Curvature — Dual-mode M-phi analysis:
- Quick (6-Point) — Closed-form key points (cracking, yield, ultimate) per ACI 318-19
- Advanced (Incremental) — Hognestad parabolic concrete model with fiber-layer approach, axial load support, 60-point smooth curve
- Mander Confined Concrete — Full Mander, Priestley & Park (1988) model with 13-step transparent report, biaxial confinement (Fig. 5), Plotly stress-strain curves, and confinement effectiveness charts
- Joint Shear — Verification for special moment frames (Section 422.7)
Detailing
- Development Length — Hook geometry for deformed bars and stirrups (Section 425)
- Alternative Inertia — Effective moment of inertia per Section 424.2.3.5
Web Application
- Flask-based interactive calculators
- Plotly charts for all visualizations (M-phi diagrams, P-M interaction, stress-strain curves, section analysis)
- MathJax-rendered calculation reports with full formula substitution
- Print-ready output with engineering notation
Installation
pip install -e .
Dependencies
- Python 3.8+
- Flask
- NumPy
- Gunicorn (production)
- openpyxl
Running Locally
python run.py
Then open http://localhost:5000 in your browser.
Project Structure
concretedesignpy/
├── calculators/ # Backend calculation modules
│ ├── beam_moment.py # Flexural capacity (neutral axis solver)
│ ├── beam_shear.py # Concrete & steel shear strength
│ ├── beam_torsion.py # Torsion design checks
│ ├── beam_deflection.py
│ ├── column_interaction.py # P-M interaction diagram
│ ├── column_flexural.py # Min flexural strength ratio
│ ├── joint_shear.py
│ ├── mander.py # Confined concrete model
│ ├── moment_curvature.py # M-phi analysis
│ ├── development_length.py # Hook geometry
│ ├── alternative_inertia.py
│ ├── rebar_layout.py # Section rebar coordinates
│ └── diagrams.py # SVG diagram generators
├── webapp/
│ ├── app.py # Flask application factory
│ ├── routes/ # API endpoints (beam, column, section, joint, mander)
│ ├── templates/ # Jinja2 HTML templates with MathJax
│ └── static/ # CSS & JavaScript
├── Procfile # Railway/Heroku deployment
├── railway.json # Railway config
├── requirements.txt # Python dependencies
└── setup.py # Package setup
API Endpoints
| Endpoint | Description |
|---|---|
POST /api/beam/moment |
Beam moment capacity |
POST /api/beam/shear |
Shear strength or spacing |
POST /api/beam/shear-design |
Beam shear design (ACI 318M-14) |
POST /api/beam/torsion |
Torsion design |
POST /api/beam/deflection |
Deflection check |
POST /api/column/interaction |
P-M interaction diagram |
POST /api/column/flexural |
Min flexural strength |
POST /api/joint/shear |
Joint shear verification |
POST /api/mander/confined |
Mander confined concrete |
POST /api/section/development-length |
Hook geometry |
POST /api/section/moment-curvature |
M-phi analysis (6-point) |
POST /api/section/moment-curvature-advanced |
M-phi analysis (Hognestad incremental) |
POST /api/section/alternative-inertia |
Alternative Ie |
Code Standards & References
- NSCP 2015 — National Structural Code of the Philippines
- ACI 318-19 / ACI 318M-14 — American Concrete Institute
- ACI SP-17 — Design Handbook
- Mander, Priestley & Park (1988) — Theoretical stress-strain model for confined concrete, J. Structural Engineering, ASCE, Vol. 114, No. 8
- Hognestad (1951) — A study of combined bending and axial load in reinforced concrete members, University of Illinois Bulletin No. 399
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature-name) - Commit your changes
- Submit a pull request
License
MIT License. See LICENSE for details.
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
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 concretedesignpy-0.4.0.tar.gz.
File metadata
- Download URL: concretedesignpy-0.4.0.tar.gz
- Upload date:
- Size: 104.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 |
a7e015d6145c2ce05313f05f8d168a729b2458e4a5c219f5aded33143d66b5d3
|
|
| MD5 |
8d3e59dde81a0d1435232eeb2f2ece62
|
|
| BLAKE2b-256 |
ebee7efff018d94ed57806876a9f23a8594767a9698cd05565f3828829aad1bd
|
File details
Details for the file concretedesignpy-0.4.0-py3-none-any.whl.
File metadata
- Download URL: concretedesignpy-0.4.0-py3-none-any.whl
- Upload date:
- Size: 127.5 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 |
dd78ffd86d792b36603e3daaddd4bbb4229adb5cb043bd8a6b07e38cfe0792c5
|
|
| MD5 |
5f9e0d4cd2de95061f46c9b470316dde
|
|
| BLAKE2b-256 |
4715fb331fd6aac9d7d340eb974dcb58a5e9a82c5a1796c56897df3d6a400199
|