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.
- 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
- P-M Interaction — Strain compatibility analysis with Plotly interaction diagrams, load combination overlay
- Minimum Flexural Strength — Column-to-beam strength ratio verification
- 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)
- Development Length — Hook geometry for deformed bars and stirrups (Section 425)
- Alternative Inertia — Effective moment of inertia per Section 424.2.3.5
- 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
pip install -e .- Python 3.8+
- Flask
- NumPy
- Gunicorn (production)
- openpyxl
python run.pyThen open http://localhost:5000 in your browser.
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
See the Wiki — API Reference for the full list of 17 POST endpoints.
- 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
- Fork the repository
- Create a feature branch (
git checkout -b feature-name) - Commit your changes
- Submit a pull request
MIT License. See LICENSE for details.