anastruct
Finite element analysis of 2D structures
Decision gist · record as of 2026-08-14
Yes, if you are working on 2D structural analysis in Python and can accept a copyleft license. The package is actively maintained, has no known vulnerabilities, and provides a complete FEA workflow for frames and trusses. Install only if your project permits GPL-3.0-or-later licensing; otherwise, seek an alternative with a permissive license.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.10; numpy and scipy must be installed.
- Medium install friction due to compiled wheels for multiple Python versions (3.10–3.13) and platforms.
- Active maintenance with a recent commit on 2026-08-07 and no known vulnerabilities.
License · maintenance · safety
GPL-3.0-or-later (copyleft) — GPL-3.0-or-later (copyleft) means any derivative work or distribution must also be open-source under compatible terms; suitable for research and open-source projects but requires careful review in proprietary contexts.
last release 2026-06-06 (69 days) · last repo commit 2026-08-07 · 460 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 119,361 downloads/mo, #12,075 on PyPI
Alternatives
Verify before relying
from anastruct import SystemElements
ss = SystemElements(EA=15000, EI=5000)
ss.add_element(location=[0, 5])
ss.add_support_fixed(node_id=1)
ss.point_load(Fx=30, node_id=2)
ss.solve()
ss.show_bending_moment()- Whether the package supports non-linear analysis beyond the geometrical non-linearity mentioned in the description.
- Performance characteristics and scalability limits for large structures.
- Availability and completeness of the EU, US, UK steel section database.
What it is and what it does
anaStruct is a finite element analysis library for 2D structural systems—frames, trusses, and beams. It computes internal forces (bending moments, shear forces, axial forces) and displacements under various loading conditions. The package supports diverse boundary conditions (fixed, hinged, and spring supports), load types (point loads, distributed loads, dead load), and structural features (hinged elements, rotational springs, non-linear nodes). It relies on numpy and scipy for numerical computation.
The library is designed for structural engineers and researchers analyzing slender 2D structures. It includes visualization tools to display the structure, reactions, internal force diagrams, and deformations. It also provides access to standard steel section databases (EU, US, UK) and supports load cases and combinations, making it suitable for both educational and practical engineering applications.
Use it for
- Analyze a multi-span beam under distributed and point loads to find maximum bending moments and reactions.
- Design a truss structure by computing axial forces in members and checking against allowable stresses.
- Model a frame with spring supports to study the effect of foundation compliance on displacements.
- Perform non-linear water accumulation analysis on a structure to predict load redistribution.
- Verify hand calculations for a simple cantilever or simply-supported beam during design review.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are working on 2D structural analysis in Python and can accept a copyleft license.
The package is actively maintained, has no known vulnerabilities, and provides a complete FEA workflow for frames and trusses. Install only if your project permits GPL-3.0-or-later licensing; otherwise, seek an alternative with a permissive license.
Install
anastruct on PyPI
Before you install
Medium install friction due to compiled wheels for multiple Python versions (3.10–3.13) and platforms. Active maintenance with a recent commit on 2026-08-07 and no known vulnerabilities.
Requires Python >= 3.10; numpy and scipy must be installed.
License in practice
GPL-3.0-or-later (copyleft) means any derivative work or distribution must also be open-source under compatible terms; suitable for research and open-source projects but requires careful review in proprietary contexts.
Quickstart
from anastruct import SystemElements
ss = SystemElements(EA=15000, EI=5000)
ss.add_element(location=[0, 5])
ss.add_support_fixed(node_id=1)
ss.point_load(Fx=30, node_id=2)
ss.solve()
ss.show_bending_moment()
Verify before relying
- Whether the package supports non-linear analysis beyond the geometrical non-linearity mentioned in the description.
- Performance characteristics and scalability limits for large structures.
- Availability and completeness of the EU, US, UK steel section database.
Package facts
| License | GPL-3.0-or-later copyleft |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagesnumpyscipy |
| Maintenance | Actively maintained 69 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 119,361 / month, #12,075 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Science/ResearchLicense :: OSI Approved :: GNU General Public License v3 (GPLv3)License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: PhysicsTopic :: Software Development :: Libraries :: Python Modules |
Evidence: anastruct-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl; anastruct-1.7.0-cp310-cp310-macosx_11_0_arm64.whl; anastruct-1.7.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; anastruct-1.7.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; anastruct-1.7.0-cp310-cp310-musllinux_1_2_x86_64.whl; anastruct-1.7.0-cp310-cp310-win_amd64.whl; anastruct-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl; anastruct-1.7.0-cp311-cp311-macosx_11_0_arm64.whl; anastruct-1.7.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; anastruct-1.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; anastruct-1.7.0-cp311-cp311-musllinux_1_2_x86_64.whl; anastruct-1.7.0-cp311-cp311-win_amd64.whl; anastruct-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl; anastruct-1.7.0-cp312-cp312-macosx_11_0_arm64.whl; anastruct-1.7.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; anastruct-1.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; anastruct-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl; anastruct-1.7.0-cp312-cp312-win_amd64.whl; anastruct-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl; anastruct-1.7.0-cp313-cp313-macosx_11_0_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “2D frame analysis”
- anastructAnalyzes 2D frames and trusses to compute bending moments, shear…
- PyNiteFEAPyNiteFEA performs 3D elastic structural finite element analysis,…
- face-alignmentDetects 2D and 3D facial landmarks from images using deep learning,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also PyNiteFEA · scikit-fem · chgnet · toposort · openseespylinux · gmsh · truss · skan · affine · cytriangle