Essential Python Packages for Civil Engineers

A list of resources for Civil Engineers to get started coding their own applications
June 21, 2023
MJ
MJ
Longinos

In the rapidly evolving landscape of today’s world, the availability of educational resources for coding has become increasingly accessible. For engineers who are interested in exploring the realm of coding and developing their own applications, the initial hurdles can often seem daunting. However, it is important to recognize that a wealth of knowledge and resources already exist, with individuals having developed foundations and libraries of functions that can serve as a launching pad for beginners.

We aim to demystify the process for engineers venturing into coding by highlighting the readily available coding libraries in Python. These libraries act as repositories of code snippets and preexisting functions, offering a solid foundation from which engineers can confidently embark on their coding journey. Want to develop code for designing a steel beam? There’s a library for that. Want to calculate concrete section properties? There’s a library for that too.

Why did we create this list?
When we were first developing Civils.ai we found it difficult to find all the great open-source work other Engineers had already prepared. After spending hours searching and collecting these resources we realised it would be helpful to publish the list to make it easier for other Civil Engineers to find these awesome resources. We have curated a comprehensive list of open-source resources specifically tailored for Civil Engineers using Python, all conveniently available on GitHub. Our aim is to provide engineers with a curated selection of tools, libraries, and frameworks that serve as a solid foundation for their coding journey. By leveraging open-source solutions, engineers can access a wealth of knowledge, tap into collaborative communities, and harness the power of shared code contributions. We empower civil engineers to unlock their coding potential and embark on a path of innovation and efficiency in their field.

What is a code library?

Code libraries, also known as software libraries or code repositories, are collections of prewritten, reusable code modules or functions that serve specific purposes. These libraries are designed to provide a set of tools and functionalities that can be utilized by programmers and developers to simplify the process of building software applications. By encapsulating commonly used code snippets, libraries offer a convenient way to access and incorporate established code solutions into new projects.

Below are the GitHub links to the latest additions in our extensive compilation of open-source libraries. These repositories represent the most up-to-date resources that we have curated, encompassing a wide range of programming languages and domains. These links showcase the diverse range of resources we have specifically for civil engineers using Python. Each link represents a unique library that can empower engineers to streamline their workflows, optimize their processes, and unlock new possibilities in their projects.

 

Without further a do, here is the full list:

Structural beam analysis: https://github.com/JesseBonanno/IndeterminateBeam

2D Frame Analysis: https://github.com/ritchie46/anaStruct

Geotechnical slope stability: https://github.com/JesseBonanno/PySlope

Pad foundation design: https://github.com/CodedKunz/FoundationDesign

Reinforced concrete properties: https://github.com/robbievanleeuwen/concrete-properties

3D Frame Analysis: https://github.com/JWock82/PyNite

Ground anchor design: https://github.com/tunnelsai-public/PyAnchor

AGS data convertor: https://gitlab.com/ags-data-format-wg/ags-python-library

Geological modelling: https://github.com/cgre-aachen/gempy

Geotechnical functions: https://github.com/snakesonabrain/groundhog

Xlwings: https://github.com/xlwings/xlwings

Course Preview – Python for Civil Engineering Certification

If you’d like a guided path to mastering the libraries above, watch the two‑minute overview below. You’ll see the four web‑based tools we build during the Python for Civil Engineering Certification and learn how each one replaces hours of manual spreadsheet work.

Why Python Skills Are a Game‑Changer for Structural Engineers in 2025

Python sits at the heart of today’s most powerful engineering automation, from finite‑element solvers to AI‑driven optimisation. By adding Python to your toolbox you can:

  • Slash repetitive calculations  – script beam, slab and frame checks once and reuse them for every project.
  • Cut software spend  – replace expensive licences with open‑source libraries you fully control.
  • Integrate with BIM & GIS  – connect models, drawings and geospatial data through Python APIs.
  • Future‑proof your career  – machine learning, parametric design and digital twins all speak Python.

What You Will Build Inside the Certification

Across seven bite‑sized modules you will craft four deployable apps that replace hours of manual work. Expand each panel below for a short preview:

Publish a web‑based beam calculator that returns deflection, shear and moment diagrams in seconds.

  • Input span, section, supports and loads.
  • Real‑time results powered by PyNite.
  • Self‑hosted app you can customise and share.

Generate full M‑N interaction diagrams and optimise rebar layouts in a browser.

  • Inputs: concrete grade, bar sizes, cover and loads.
  • Automatic capacity curves and utilisation ratios.
  • Deploy online for team‑wide access.

Assess factor‑of‑safety using Bishop’s Method with layered soils and pore‑water pressures.

  • Define slope profile, strata and load cases.
  • Sensitivity study and slip‑circle visualisation.
  • Shareable web app for quick geotech checks.

Visualise deformed shapes, forces and stresses for complex space frames directly in the browser.

  • Node & element input via intuitive UI.
  • 3‑D results rendered with WebGL.
  • Portable and open‑source—no licence fees.

Every app is self‑hosted on a free cloud platform, so you can demo your work to clients or colleagues from any device.

Lesson Plan

7 modules available

Module 1 - Course Introduction

Python Fundamentals Module - Python fundamentals for Civil Engineers

We kick off the course by explaining exactly how the course works.

Lesson duration: 10 mins

Lesson type: Theory

Things you will learn:

  • Structure of the course with theory & practical.
  • Introduction to your instructor.
  • Course resources.

Module 2 - Python & Programming Fundamentals for Engineers

Python Fundamentals Module - Python fundamentals for Civil Engineers

This is a beginner friendly crash course explaining how programming languages work and how to get started scripting in Python.

Lesson duration: 60 mins

Lesson type: Theory & Practical

Theory topics:
  • How do computer systems work and what is programming?
  • What is Python?
  • When & how is Python better than Excel?
Practical topics:
  • Set up our computer to start working with Python
  • Write our first programme
  • Start working with Python libraries

Module 3 - Building and Publishing Python Applications on the web 

Building and Publishing Python Applications Module - How to build and publish Python applications on the web

Building upon the last lesson, we look at how we can host our applications on the web and publish our first web app.

Lesson duration: 45 mins

Lesson type: Theory & Practical

Theory topics:
  • How do websites work?
  • What is HTML, CSS and Javascript?
  • How to host web applications using only Python?
Practical topics:
  • Creating our first web application
  • Publishing our web application (free of charge)
  • Controlling access to our applications

Module 4 - Building our own Beam Analysis Software

Building a Beam Analysis Module - Building a beam analysis engine with Python

We build our own self-hosted beam analysis tool and publish it to the web.

Lesson duration: 30 mins

Lesson type: Practical

Things you will learn:

  • Introduction to the Open-Source Python Beam Analysis Library.
  • Connecting inputs into the libraries calculation functions via a user interface.
  • Rendering calculation outputs (Deflection, Bending Moments, Shear Forces, Reactions) in plots and charts.
  • Publishing our application to the web.

Module 5 - Building our own Reinforced Concrete analysis software

Python Reinforced Concrete Module - Building custom reinforced concrete analysis tools with Python for construction

We build our own self-hosted reinforced concrete design tool and publish it to the web.

Lesson duration: 30 mins

Lesson type: Practical

Things you will learn:

  • Introduction to the Open-Source Concrete Properties Library.
  • Connecting inputs into the libraries calculation functions via a user interface.
  • Rendering calculation outputs (concrete section properties and M-N capacity) in plots and charts.
  • Publishing our application to the web.

Module 6 - Building our own Geotechnical Slope Analysis software

Building Geotechnical Slope Analysis Software Module - Developing custom geotechnical tools with Python for slope stability analysis

We build our own self-hosted slope stability analysis tool and publish it to the web.

Lesson duration: 30 mins

Lesson type: Practical

Things you will learn:

  • Introduction to the Open-Source Geotechnical Slope Analysis Library.
  • Connecting inputs into the libraries calculation functions via a user interface.
  • Rendering calculation outputs (slope factor of safety, calculation slices and sensitivity analysis) in plots and charts.
  • Publishing our application to the web.
Module 7 - Building our own Finite Element Analysis software
Building a structural finite element anlysis engine with PyNite and Python

We build our own self-hosted Finite Element Analysis software and publish it to the web.

Lesson duration: 30 mins

Lesson type: Practical

Things you will learn:

  • Introduction to the Open-Source Finite Element Analysis Library.
  • Connecting inputs into the libraries FEA Engine via a user interface.
  • Rendering calculation outputs (node deflections, internal forces, stresses and deformed mesh) in plots and charts.
  • Publishing our application to the web.

Ready to Level-Up Your Python Skills?

Join 300+ civil & structural engineers already automating their design workflows with the Python for Civil Engineering certification. Stop wrestling with spreadsheets—build your own web-based tools instead!

Explore the Course →

Interested in learning about how you can use AI in your Civil Engineering workflow?
Learn more