SPECIFICATION // SPEC-04

Python FEA Analysis Engine

Predicting how parts bend and carry load • Python / C++

From CAD Model to Structural Insight

I built a desktop engineering tool that predicts how a part bends and where stress develops under load. Users import a 3D CAD model, choose its material, select supports and loads, and explore the results through interactive color maps.

Finite element analysis (FEA) breaks a complex shape into small elements and solves their response together. This project connects that mathematics to a practical application: a Python interface, a custom C++ structural solver, and an interactive 3D viewer.

What I Built

  • CAD-to-analysis workflow: STEP geometry import, automatic surface tagging, and Gmsh meshing with quadratic, 10-node tetrahedral elements.
  • Custom numerical solver: element stiffness calculations, global sparse matrix assembly, boundary conditions, and linear elastic displacement and stress recovery.
  • Performance-focused integration: Eigen sparse linear algebra, OpenMP parallel assembly, and nanobind bindings connecting C++ computation to Python.
  • Interactive desktop experience: PyQt6 controls and PyVista visualization for selecting faces, applying constraints and distributed loads, and inspecting results.

Engineering & Software Skills

Applied computational mechanics, numerical methods, 3D meshing, sparse linear algebra, parallel programming, Python/C++ integration, and desktop interface development. Comparing results with SolidWorks Simulation also developed my ability to evaluate solver behavior and communicate numerical accuracy.

Back to Projects View Solver Repository