Inspiration

In hardware engineering, software and physical design are siloed. When a PCB layout is changed, testing for physical failures like solder joint fatigue requires building expensive physical prototypes. I wanted to shift this reliability testing "left"—into the software workflow—by creating an agent that catches thermo-mechanical failures before fabrication.

What it does

The Thermo-Mechanical Reliability Guardian intercepts hardware design commits (KiCad PCB and Gerber files) within a GitLab CI/CD pipeline. It parses the physical geometry of the board, runs non-linear thermal fatigue simulations (using the Darveaux and Norris-Landzberg models) on every individual pad, and visualizes the predicted failure points in an interactive 3D dashboard. Finally, it posts a formatted PASS/WARNING report directly back to the GitLab Merge Request.

How I built it

The backend is built in Python. I used 'kiutils' and 'gerbonara' to parse complex ECAD files and extract pad geometries. The physics engine is powered by NumPy, calculating inelastic strain energy density per pad. The frontend is a Streamlit app that uses PyVista to render the boards and pads in 3D space, color-coded by their predicted cycles to failure. The DevSecOps agent utilizes the 'python-gitlab' API to interact with Merge Requests.

Challenges I ran into

Parsing real-world ECAD formats (Gerber and KiCad) was complex because they are designed for manufacturing machines, not abstract data analysis. Extracting exact pad coordinates and diameters required carefully navigating the layer structures. Additionally, rendering PyVista 3D graphics in a headless cloud environment (Streamlit Cloud) required configuring virtual framebuffers (Xvfb) and specific system-level packages.

Accomplishments that I am proud of

Building a fully functional pipeline that takes real, complex manufacturing files (like a 106-pad Top Copper Gerber layer) and accurately mapping the thermal fatigue life to individual pads. The 3D visualization makes the invisible physics of thermo-mechanical strain instantly understandable.

What I have learned

I deepened my understanding of integrating deep physics models into modern DevOps workflows. I also learned how to build robust parsers for industry-standard EDA formats and how to bridge the gap between heavy numerical simulation and interactive web dashboards.

What's next for Thermo-Mechanical Reliability Guardian

Future iterations will include a full 3D Finite Element Analysis (FEA) solver (like FEniCS) to model non-linear creep and plasticity, automated layer stackup extraction to pull material properties directly from the PCB file, and deeper integration with GitLab Orbit for historical failure correlation.

Built With

  • devsecops
  • gerbonara
  • gitlab
  • kiutils
  • numpy
  • physics-informed
  • python
  • pyvista
  • reliability-engineering
  • streamlit
Share this project:

Updates

Submission history