Skip to main content

Open-source reinforced concrete design library with web interface (ACI 318-19, NSCP 2015, ASCE 41-17)

Project description

ConcreteDesignPy

PyPI version Python License: MIT GitHub release GitHub issues

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

See the Wiki — API Reference for the full list of 17 POST endpoints.

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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature-name)
  3. Commit your changes
  4. 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

concretedesignpy-0.5.0.tar.gz (128.3 kB view details)

Uploaded Source

Built Distribution

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

concretedesignpy-0.5.0-py3-none-any.whl (150.0 kB view details)

Uploaded Python 3

File details

Details for the file concretedesignpy-0.5.0.tar.gz.

File metadata

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

File hashes

Hashes for concretedesignpy-0.5.0.tar.gz
Algorithm Hash digest
SHA256 31ebaf825b3cfd85d99adf95ed68f67c62be7b09493dbe215ed5582338f5ae6f
MD5 ac17f1afb0e01d8446cc215e90a0215d
BLAKE2b-256 c8d5516a9f3e465d4d8b0ad1ef2f52666a6b30a9b87dc50ebbb23f31c0137c5c

See more details on using hashes here.

File details

Details for the file concretedesignpy-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concretedesignpy-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c62a2a4d773a350de5d531162423bcc999c1d0f7a0f1dd5ca71b47af8c1b49a
MD5 c64f68a6b46f8b7eb86dbea94a229a57
BLAKE2b-256 9d607a4e5b16269287a48997999bb0819aba245a70a2de0a944709f52e784099

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