Skip to main content
mento_github

An intuitive tool for structural engineers to design concrete elements efficiently.

Sponsor Tests Docs codecov PyPI Python versions License: MIT DOI Ruff

mento designs and checks reinforced concrete members to ACI 318-19, EN 1992-1-1:2004 (Eurocode 2) and CIRSOC 201-25. Give it a section, its materials and a set of load combinations; it returns the reinforcement, the demand-to-capacity ratio of every check, and a calculation report you can hand to a reviewer.

mento is also, as far as we know, the only open source package that implements CIRSOC 201-25, the Argentinian concrete design standard.

Try it without installing anything: mentocalc.com runs mento in your browser, with calculators for beams, one-way slabs and shear walls that produce the same Word report, in English or Spanish.

Installation

pip install mento

Requires Python 3.12 or newer. To try it in Google Colab, run !pip install mento in the first cell.

Quick start

Design a 20 × 50 cm beam for two load combinations:

from mento import Concrete_ACI_318_19, SteelBar, RectangularBeam, Forces, Node
from mento import MPa, cm, mm, kN, kNm

concrete = Concrete_ACI_318_19(name="C25", f_c=25 * MPa)
steel = SteelBar(name="ADN 420", f_y=420 * MPa)
beam = RectangularBeam(
    label="B101", concrete=concrete, steel_bar=steel,
    width=20 * cm, height=50 * cm, c_c=25 * mm,
)

forces = [
    Forces(label="1.2D+1.6L", M_y=120 * kNm, V_z=100 * kN),
    Forces(label="1.4D", M_y=80 * kNm, V_z=70 * kN),
]
node = Node(section=beam, forces=forces)
node.design()

print(beam.reinforcement)
bottom: 2Ø20 mm + 1Ø16 mm / top: no reinforcement / stirrups: 1 stirrup Ø10 mm @ 22 cm
Designed section of beam B101

From there:

  • beam.plot() draws the section above.
  • node.check_flexure() and node.check_shear() return one row per combination as a pandas DataFrame, with the required and provided steel, the capacity and the DCR.
  • node.results shows the formatted results in a Jupyter notebook.
  • node.flexure_results_detailed_doc() and node.shear_results_detailed_doc() write the step-by-step calculation report to Word.
  • To check reinforcement you already have instead of designing it, set the bars on the beam and call node.check().

The examples walk through each element and design code as a notebook, including US customary units.

What mento covers

Element ACI 318-19 CIRSOC 201-25 EN 1992-1-1:2004
Rectangular beam, flexure and shear ✅ ✅ ✅
One-way slab, flexure and shear ✅ ✅ ✅
Footing section, flexure and shear ✅ ✅ ✅
Shear wall, in-plane shear ✅ ✅ ✅
Slab punching shear in progress in progress in progress

Across all of them:

  • Units throughout. Every input carries its unit. Metric and US customary are both supported, and a section entered in US customary units is reported in them.
  • Design gives you options. Besides the arrangement it applies, a design keeps the next best alternatives for bars and stirrups, and warns about the detailing limits a section misses.
  • Many members at once. BeamSummary and ShearWallSummary design or check a whole schedule, and export the designed reinforcement to Excel and back.
  • Reports. Results come as Markdown in Jupyter, as pandas DataFrames, and as Word documents.

Validated against published examples

The 58 tests in tests/validation reproduce cases worked out outside mento: the CRSI Design Guide on the ACI 318 Building Code, CSI's software verification examples, ETABS runs, The Concrete Centre's Eurocode 2 guide and eurocodeapplied.com. Each test names the example and the page its numbers come from.

The theory pages set out the equations behind each check, with the clause of the design code they come from.

Documentation

The full documentation is at mento-docs.readthedocs.io:

Roadmap

  • Rectangular concrete beam section check and design for ACI 318-19 and CIRSOC 201-25.
  • Rectangular concrete beam section check and design for EN 1992-2004.
  • One way concrete slab and footing check and design for ACI 318-19 and CIRSOC 201-25.
  • One way concrete slab and footing check and design for EN 1992-2004.
  • Shear wall shear check and design for ACI 318-19 and CIRSOC 201-25.
  • Shear wall shear check and design for EN 1992-2004.
  • US customary units in, US customary units out.
  • Slab shear punching check and design for ACI 318-19 and CIRSOC 201-25. (in progress)
  • Slab shear punching check and design for EN 1992-2004. (in progress)
  • Shear wall flexure check for ACI 318-19.
  • Column check for ACI 318-19.

Support mento

mento is built and maintained in the time left over from consulting work. If it saves you a spreadsheet or a few hours, consider sponsoring its development:

  • Ko-fi — one-off support, no account needed.

Sponsorship funds the roadmap above: punching shear, columns, and full EN 1992 coverage. Sponsors are listed in this README, and Partner sponsors get their logo on mentocalc.com.

Not looking to sponsor? A ⭐ on the repo or feedback in Discussions is also genuinely appreciated.

Using mento at your company?

mento is free and open-source under MIT. If your team wants help going further, we offer a few things on top:

  • Team onboarding — short remote sessions to get your engineers productive with Python, Jupyter, VS Code and Git, using mento as the starting point.
  • Custom tools — building specific workflows on top of mento (custom reports, integrations with Revit / ETABS / Robot, batch design tools, internal company libraries).
  • Sponsored features — if your firm needs a specific element type, design code, or check that's on the roadmap (or not), we can scope it as paid work and contribute it back.

If any of that is useful for your team, fill out this form and we'll follow up.

Contributing

We welcome contributions from the community to expand and enhance the package. Start with the contributing guide, then look through the open issues — those labelled good first issue are a good entry point. A new calculation needs a published worked example to validate it against; the guide explains how.

Participation in this project is governed by our Code of Conduct.

Disclaimer

mento is a tool to assist structural engineers, not a replacement for engineering judgement. Results must be reviewed and accepted by a qualified engineer who takes responsibility for the design. The software is provided "as is", without warranty of any kind, and the authors accept no liability for its use. Verify the output against the applicable design code before relying on it for any real structure.

Citing mento

If mento supports your research or professional work, cite it with the DOI 10.5281/zenodo.21956634, which always resolves to the latest release. Citation metadata is in CITATION.cff, and GitHub's "Cite this repository" button will format it for you. The citing guide explains which version to cite and gives a BibTeX entry.

License

This project is licensed under the MIT License. See LICENSE for the full text.

Metadata

Release files for mento 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mento 1.6.0
File Size Uploaded
mento-1.6.0.tar.gz 377.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mento 1.6.0
File Interpreter ABI Platform
mento-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 788.5 kB

Release files / mento-1.6.0.tar.gz

Download URL mento-1.6.0.tar.gz
Size 377.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fcba35eb15332f54b8add79cbd260dd687fb090b0dc0dc6865ee286278198996
BLAKE2b-256 checksum
How to use checksums
5b08b0e75b75fb6cdbb2298b52b0943221555917b039d81a75f629186ac2e977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / mento-1.6.0-py3-none-any.whl

Download URL mento-1.6.0-py3-none-any.whl
Size 410.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9698d0f79dc94c9127a25da29b790fb6850e7c2f46bb15a609a0e7427c56f9d2
BLAKE2b-256 checksum
How to use checksums
a5ba044e4a7fe6760654fc142e6c9220172f905a24e9aeb27cb334d1e64eafac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

1.6.1

2 release files

This release

1.6.0 This release

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page