skillfed

anastruct

Finite element analysis of 2D structures

anastruct v1.7.0 119.4K downloads/30d#12,075 on PyPI460
Copyleft license GPL-3.0-or-later Active released

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

Analyzes 2D frames and trusses to compute bending moments, shear forces, axial forces, and displacements for slender structures.

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

pip

pip install anastruct

uv

uv add anastruct

poetry

poetry add anastruct

Installing anastruct

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.

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()

Requires Python >= 3.10; numpy and scipy must be installed.

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 — numpy, scipy
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)

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

Keywords: FEA, finite element, structural engineering, structural analysis

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

Tags

2D frame analysistruss analysisfinite element analysisstructural analysis pythonbending moment calculationshear force computationbeam analysis
structural-analysisfinite-element-methodengineering

More Scientific/Engineering packages