PyNiteFEA
A simple elastic 3D structural finite element library for Python.
What it is and what it does
PyNiteFEA is a Python library for structural engineering finite element analysis focused on simplicity and accuracy. It handles 3D elastic analysis of frame and plate structures, including static loads, modal vibration analysis, geometric nonlinearity (P-Delta), and nonlinear pushover analysis for steel frames. The library supports point loads, distributed loads, load cases, load combinations, and various element types (frame members, quadrilateral and rectangular plate elements, tension/compression-only members, and spring elements). It produces member diagrams (shear, moment, axial, torsion), reaction reports, and can render model geometry, deformed shapes, and generate PDF reports.
The package prioritizes ease of use and correctness over advanced capabilities, targeting structural engineers who need a robust general-purpose solver without steep learning curves or extensive finite element theory knowledge. It depends on numpy for computation, scipy for numerical methods, matplotlib for visualization, and PrettyTable for formatted output. The codebase is tested against textbook problems with known solutions via continuous integration.
Use it for:
- Design and analyze 3D steel or concrete frame structures under multiple load cases and combinations
- Perform modal analysis to find natural frequencies and mode shapes of building or bridge frames
- Conduct P-Delta analysis to assess geometric nonlinearity effects in tall or slender structures
- Run nonlinear pushover analysis on steel frames to evaluate seismic performance and capacity
- Model and analyze shear walls and mat foundations with automatic meshing and visualization
- Generate member force diagrams and PDF reports for structural design documentation
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyNiteFEA performs 3D elastic structural finite element analysis, including static analysis, modal analysis, P-Delta effects, and nonlinear pushover analysis for frame and plate structures.
Yes. PyNiteFEA is actively maintained, has no known vulnerabilities, permissive licensing, and low install friction. It is well-suited for structural engineers needing accessible 3D FEA without commercial software. The recent 3.0.0 release adds pushover analysis, and the codebase is tested against known solutions. Start with the examples folder and readthedocs documentation to evaluate fit for your specific analysis needs.
Install
pynitefea on PyPI
pip
pip install pynitefeauv
uv add pynitefeapoetry
poetry add pynitefeaInstalling PyNiteFEA
Before you install
Low install friction with a pure-Python wheel and four common scientific dependencies (numpy, scipy, matplotlib, PrettyTable). The package is actively maintained with a recent release (74 days ago) and 728 repository stars, indicating stable ongoing development.
License in practice
Licensed under MIT (permissive), allowing unrestricted use, modification, and distribution in both open-source and commercial projects without copyleft obligations.
Quickstart
pip install PyniteFEA[all]
import numpy
import scipy
import matplotlib
import PrettyTable
# Create and solve a finite element model using PyNiteFEA's API
Requires Python 3.11 or later; numpy, scipy, matplotlib, and PrettyTable must be installed (included in [all] extra).
Verify before relying
- Whether the package handles dynamic analysis beyond modal analysis and pushover
- Performance characteristics and scalability limits for large models with many elements
- Validation scope and accuracy bounds for nonlinear pushover analysis beyond I-shaped steel members
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — numpy, PrettyTable, scipy, matplotlib |
| Maintenance | actively maintained — 74 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 135,267/month — #11,443 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pynitefea-3.0.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
anastructAnalyzes 2D frames and trusses to compute…
copyleft · top 15,000 on PyPI
scikit-femTransforms bilinear and linear forms into…
permissive · top 15,000 on PyPI
openseespyOpenSeesPy is a Python interpreter for…
unclear · top 15,000 on PyPI
openseespylinuxOpenSeesPy Linux provides a Python interface to…
unclear · top 15,000 on PyPI
cytriangleCyTriangle wraps Jonathan Shewchuk's Triangle…
copyleft · top 15,000 on PyPI
pyvistaPyVista provides a NumPy-native API for 3D…
permissive · top 5,000 on PyPI
pymeshfixPyMeshFix repairs triangular meshes by removing…
agpl · top 15,000 on PyPI
gmshGmsh is a three-dimensional finite element mesh…
copyleft · top 15,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI
pymeshlabPyMeshLab provides Python bindings to MeshLab,…
copyleft · top 15,000 on PyPI