Documentation: https://blueprints.readthedocs.io
Source Code: https://github.com/Blueprints-org/blueprints
Discord: https://discord.gg/hBZBqegEzA
LinkedIn: https://www.linkedin.com/company/blueprints-org
Welcome to Blueprints, the go-to repository for civil engineering professionals and enthusiasts!
It includes programmable engineering standards, formulas, tables, and checks across a variety of structural and geotechnical disciplines. We offer tools for materials, geometry, and section checks, as well as a foundation of essential use cases designed to meet all key engineering needs.
Stop coding civil engineering logic from scratch, ditch Excel, and start collaborating to shape the future of civil engineering! 🚀
See our ROADMAP for detailed feature status and upcoming developments.
Python >=3.12 is required.
For the last release:
pip install blue-printsFor the actively developed version:
pip install git+https://github.com/Blueprints-org/blueprints.gitBlueprints includes a command-line interface for development automation, designed to simplify developing and contributing to the project. Maybe you want to check locally if your code passes all quality checks before making a PR? Or serve the documentation locally with live reload? We got you covered!
Install with CLI dependencies:
uv sync --group cliPre-PR validation (recommended):
blueprints checkThis runs all quality checks: lint, format, typecheck, and coverage. In one single command! Simple as that. All checks passed? then you are good to go with your PR.
For complete CLI documentation, including all available commands, advanced usage, and pass-through arguments, see the Developer CLI Guide.
from blueprints.materials.concrete import ConcreteMaterial, ConcreteStrengthClass
from blueprints.materials.reinforcement_steel import ReinforcementSteelMaterial, ReinforcementSteelQuality
# Calculate concrete properties
concrete = ConcreteMaterial(concrete_class=ConcreteStrengthClass.C30_37) # C30/37 concrete
print(f"Design strength: {concrete.f_cd} MPa")
# Check reinforcement
rebar = ReinforcementSteelMaterial(steel_quality=ReinforcementSteelQuality.B500B) # B500B rebar
print(f"Design yield strength: {rebar.f_yd} MPa")Output:
Design strength: 20.0 MPa
Design yield strength: 434.7826086956522 MPa
- Eurocode Implementations: EN 1992 (Concrete), EN 1993 (Steel), EN 1997 (Geotechnical), etc.
- Material Definitions: Concrete, steel, rebar, and soil properties
- Steel Profile Database: HEA, HEB, IPE, CHS, RHS, UNP profiles, etc.
- Shape Building Blocks: Rectangle, circle, tube, triangle, hexagon, etc.
- Engineering Checks: Shear, torsion, punching, anchorage, concrete cover, etc.
- 100% Test Coverage: Reliable, well-tested implementations
Our mission is to reduce the cost and time associated with civil engineering calculations by:
- Offering a robust suite of tools that encapsulate both basic and advanced engineering tasks
- Providing an open-source alternative to expensive proprietary tools with full transparency
- Standardizing programmable civil engineering implementations, minimizing redundancy
- Fostering a community where sharing knowledge and best practices is the norm
- Ensuring 100% code coverage and high-quality documentation
Full documentation is available at blueprints.readthedocs.io.
We welcome contributions from developers and engineers of all skill levels! Here's how you can contribute:
- Fork the Repository: Create your own fork of the project.
- Create a Branch: Make a feature branch (git checkout -b feature/new-feature).
- Make Your Changes: Write clear, concise code and ensure it's fully covered with tests.
- Run Tests: Use pytest to ensure all tests pass.
- Submit a Pull Request: Push your branch and open a pull request against main.
To learn more, see our full Contributor Guide.
Blueprints is free and open source software. Distributed under the terms of the MIT license.
If you have found a bug 🐛, or have a feature request ✨, raise an issue on the GitHub issue tracker. Alternatively you can get support on the discussions page.
Users are responsible for verifying results and ensuring compliance with applicable codes and regulations. See our full disclaimer for details.