steelbeam
A lightweight Python library for structural steel beam design and verification, with native LaTeX formula rendering and multi-code support (Eurocode, AISC, NBR).
Installation
Install with:
pip install steelbeam
You can import with:
import steelbeam as sb
Why steelbeam?
- Code-agnostic: Switch between Eurocode, AISC, and NBR with a single parameter
- Transparent calculations: Every formula is rendered in LaTeX using
handcalcslibrary — no black boxes - Jupyter-native: Designed for interactive exploration in notebooks
- Multi-definition of geometry: Pre-defined databases or user definition (manual values or using
sectionpropertieslibrary) - Ability to use units: Use SI or Imperial units with the
pintlibrary implementation
How it works
After importing the library, you must create an object representing the steel beam. You can select an existing standard profile from the provided databases (currently only European and American) or define a new profile with custom characteristics (manual entries or using the sectionproperties library's definition).
Example with provided database
Docs
You can use the following documentation for initial understanding of library's capabilities:
List of features
- Definition of geometry with predefined databases (European or American)
- Definition of geometry with dxf import (using sectionproperties library for FEM calculation of section properties)
- List of functions already implemented for national codes design formulas:
- Eurocodes
- Normal force tension resistance ✔️
- Normal force compression resistance ✔️
- Bending moment resistance for both axis of profile ✔️
- Shear resistance for both axis of profile ✔️
- Combined bending and axial force resistance ✔️
- Combined bending and shear force resistance ❌
- Torsion ❌
- Euler buckling ✔️
- Compression member buckling ✔️
- Bending with Lateral-Torsional buckling ✔️
- AISC/AASHTO
- Normal force tension resistance ✔️
- Normal force compression resistance ✔️
- NBR (work in progress)
- Eurocodes
- Configurable partial safety factors
- All resistance functions support both calculation mode and rendered output mode using the handcalcs library
- Possibility to use unit-aware or dimensionless quantities using the pint library
Dependencies
numpy— numerical computationshandcalcs— LaTeX formula renderingpint— unit handlingsectionproperties(optional) — geometry section properties
Changelog
See CHANGELOG.md for more information.
Desktop Application (Coming Soon)
While steelbeam is designed for interactive use in Jupyter notebooks, my aim is to build also a standalone desktop application that lets you perform the same calculations without writing code.
- Point-and-click interface
- Export reports in PDF/LaTeX
- Works offline — no Jupyter required
Stay tuned for the first beta release!
Metadata
Release files for steelbeam 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| steelbeam-0.2.1.tar.gz | 577.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| steelbeam-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / steelbeam-0.2.1.tar.gz
| Download URL | steelbeam-0.2.1.tar.gz |
|---|---|
| Size | 577.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a556d69f8a551f1293ed8deca19f962a14efa6c5b21f75e588ba99da94e2bd8a
|
|
BLAKE2b-256 checksum How to use checksums |
eb458cf09e8671a210534dc1586847f099135e47dea829058fdde4477ecf9bc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|
Release files / steelbeam-0.2.1-py3-none-any.whl
| Download URL | steelbeam-0.2.1-py3-none-any.whl |
|---|---|
| Size | 471.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9811739a519e524b6da5753a198435b3cb95c5943c40dcbbb49d5b504fda8602
|
|
BLAKE2b-256 checksum How to use checksums |
9d2a1cff76c3e281549d0676a3baae6e400fb9f2d045fafec4ee853879d6660b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|