ANYstructure
ANYstructure is a desktop steel-structure design application for plate fields
and cylinders. It combines DNV-based rule calculations with structural
modelling, load definition, reporting, and weight, weld, and cost optimization.
Core structural design
The original ANYstructure workflow remains the primary way to model and assess
a structure. It supports:
-
minimum plate thickness, stiffener section modulus, and shear-area checks
based on DNV-OS-C101;
-
plate buckling based on DNV-RP-C201 and shell buckling based on DNV-RP-C202;
-
fatigue assessment of plate and stiffener connections based on DNV-RP-C203;
-
semi-analytical buckling through ANYbuckling and machine-learning buckling
predictions based on PULS data;
-
automatic compartment and tank-pressure generation, plus equation-defined
external pressures;
-
single and multiple plate/stiffener-field optimization, cylinder
optimization, and double-bottom geometry optimization; and
-
weight, weld, cost, report, spreadsheet, and 3D shell-model workflows.
Projects can be created and edited graphically, saved for later work, and used
to compare structural alternatives. The example below can be opened from
anystruct/ship_section_example.txt.
Documentation: https://anystructure.readthedocs.io/en/latest/
Tutorials: https://www.youtube.com/@ANYopenSoft
Current release: 6.4.1
Version 6.4.1 keeps the established structural calculation and optimization
workflow at the front of the application while adding the integrated finite-
element workflow described below. The coordinated release uses ANYfileio 0.3.2,
ANYgeometry 0.4.3, ANYmaterial 0.2, ANYmesher 0.4 through 0.5, and ANYsolver
0.4.6 without artificial package downgrades.
Project-owned source code is distributed under the Mozilla Public License 2.0
starting with version 6.4.0. Earlier releases retain the license terms that
accompanied them.
Finite-element integration
The optional FE workflow requires ANYsolver>=0.4.6,<0.5. Axial force,
bending moment, shear force, torsional moment, pressure, and supported
collision controls are mapped directly to the external solver runtime.
Current-area follower pressure is available for nonlinear static and
arc-length runs on the Static only or Nonlinear static path. Incompatible
analysis paths are disabled in the GUI and rejected by the solver.
Arc-length runs retain the selected von Karman or corotational kinematics, and
nonlinear prestress/buckling recovery retains committed-state provenance.
Solver errors and unsupported configurations remain visible; the GUI does not
replace them with a lightweight estimate. Analysis choices are normalized by
ANYsolver's public resolve_runtime_analysis() contract.
ANYsolver 0.4.1 repairs qualified-Q4 final-state replay after plastic
increments. ANYstructure preserves the qualified Q4 formulation throughout
material-nonlinear runs; explicit legacy selection remains available to users.
ANYsolver's native B3-GE workflow is exposed through ANYstructure's versioned
beam-runtime API with the exact b3-ge selector. It is an explicit opt-in:
omitted selections and projects saved before the selector existed continue to
use the established quadratic B3 element, and an incomplete B3-GE request
fails instead of falling back or changing the model silently.
Model, mesh, and result views support live Automatic, ModernGL GPU, and Tk
software renderer selection. The current scene and camera are retained during
a renderer change, and a failed explicit GPU switch leaves the working viewer
intact. Raised horizontal and vertical dividers allow the input, model, result
text, and visualization panes to be resized.
Material controls are backed by ANYmaterial. The Interfaces menu opens
ANYmesher and the ANYfileio inspector in the existing Tk event loop.
Orthotropic selections are rejected until the legacy scalar material controls
can represent their directional properties without loss.
Install and run
Install the published package and start the desktop application:
python -m pip install --upgrade ANYstructure
ANYstructure
From a source checkout, use the active Python environment:
python run_gui.py
The default install includes Excel and machine-learning dependencies for
backwards compatibility. Focused dependency groups are available as the
core, excel, ml, dev, and all extras, and as requirement files:
python -m pip install -r requirements-core.txt
python -m pip install -r requirements-ml.txt
python -m pip install -r requirements-excel.txt
Excel project import requires a local Excel installation and is not exercised
by basic automated tests. The external Excel-sheet DNV PULS calculation
workflow has been removed; ML-CL remains available.
Coordinated development setup
ANYstructure is published as the Python package anystruct. For a sibling
checkout layout, install each editable project into one environment in
dependency order:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install --upgrade --no-deps -e "C:\Github\ANY3dView[gpu]" -e "C:\Github\ANYmaterial" -e "C:\Github\ANYgeometry" -e "C:\Github\ANYmesh" -e "C:\Github\ANYfileIO" -e "C:\Github\ANYsolver" -e "C:\Github\ANYbuckling" -e "C:\Github\ANYtk3D" -e "C:\Github\ANYstructure"
python -m pip install -r requirements-dev.txt
python -m pytest
The default command runs the fast compatibility suite. Run the focused tiers
explicitly when changing their owning code:
python -m pytest -m "fem_integration and not slow"
python -m pytest -m release_authority
python -m pytest -m slow
The slow tier contains nonlinear, collision, transient, mode-imperfection, and
large external-format qualification and is intentionally opt-in during
ordinary development.
Windows PyInstaller bundle
Build the standalone Windows directory and versioned ZIP with Python 3.14:
powershell -ExecutionPolicy Bypass -File tools\build_pyinstaller.ps1
The script builds dist\ANYstructure\ANYstructure.exe, runs its
headless packaged self-test, and writes the ZIP and matching .sha256 file to
dist.
--no-deps refreshes editable metadata without forcing pip to resolve stale
transitive upper bounds from older sibling releases. run_gui.py reports the
exact repair command for its active interpreter when selected source and
installed metadata do not agree.
The coordinated compatibility ranges are:
-
ANY3dView>=0.5.5,<0.6(ANYstructure[gpu]adds ModernGL) -
ANYbuckling>=0.1.1,<0.2 -
ANYfileio>=0.3.2,<0.4 -
ANYgeometry>=0.4.3,<0.5 -
ANYmaterial>=0.2.0,<0.3 -
ANYmesher>=0.4.0,<0.6 -
ANYsolver>=0.4.6,<0.5 -
ANYtk3D>=0.5.5,<0.6
To select a particular checkout, set the corresponding
ANYSTRUCTURE_ANY3DVIEW_ROOT, ANYSTRUCTURE_ANYTK3D_ROOT,
ANYSTRUCTURE_ANYBUCKLING_ROOT, ANYSTRUCTURE_ANYFILEIO_ROOT,
ANYSTRUCTURE_ANYGEOMETRY_ROOT, ANYSTRUCTURE_ANYMATERIAL_ROOT,
ANYSTRUCTURE_ANYMESHER_ROOT, or ANYSTRUCTURE_ANYSOLVER_ROOT environment
variable. Invalid explicit roots fail before application imports.
ANYgeometry owns neutral surface geometry. New geometry code should call
anygeometry.generators directly. The anystruct.geometry_generators and
anystruct.representation_geometry modules retain adapters for established
ANYstructure integrations. Structural properties, loads, mesh controls, and
solver state remain in their owning packages.
License and contributions
Project-owned source code in release 6.4.0 and later is licensed under the
Original project documentation is licensed under
Third-party software, models, figures, standards material, and other
attributed content retain their own terms; see the
Project branding is covered by the
Contributions and bug reports are welcome through GitHub. General feedback can
also be sent to audunarn@gmail.com.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anystructure-6.4.1.tar.gz.
File metadata
- Download URL: anystructure-6.4.1.tar.gz
- Upload date:
- Size: 31.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ddd08fd5ae86d3500e2e8db7ddbe5de6d20f5c8d70832842782d1b367e7969d
|
|
| MD5 |
31dc1773abd1e740395779ddf73c7f93
|
|
| BLAKE2b-256 |
7cfd93cf1dc78549b53276d283c52a219ed1109b4ffc8a187d7dabee6527d247
|
Provenance
The following attestation bundles were made for anystructure-6.4.1.tar.gz:
Publisher:
publish.yml on audunarn/ANYstructure
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anystructure-6.4.1.tar.gz -
Subject digest:
2ddd08fd5ae86d3500e2e8db7ddbe5de6d20f5c8d70832842782d1b367e7969d - Sigstore transparency entry: 2874371814
- Sigstore integration time:
-
Permalink:
audunarn/ANYstructure@86889fa51ff800a4124b88dd54045a78e7ba244e -
Branch / Tag:
refs/tags/v6.4.1 - Owner: https://github.com/audunarn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86889fa51ff800a4124b88dd54045a78e7ba244e -
Trigger Event:
release
-
Statement type:
File details
Details for the file anystructure-6.4.1-py3-none-any.whl.
File metadata
- Download URL: anystructure-6.4.1-py3-none-any.whl
- Upload date:
- Size: 32.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9127865e16d30a5b18db043d4b2c02e944abf0fd226761b95813178bf85a7e2
|
|
| MD5 |
8387d8ece362bc533dcb44a926b54b92
|
|
| BLAKE2b-256 |
75a0ad072c372845e9b0be8be77c24722cb960ad0db2b99811973f27173bbdb3
|
Provenance
The following attestation bundles were made for anystructure-6.4.1-py3-none-any.whl:
Publisher:
publish.yml on audunarn/ANYstructure
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anystructure-6.4.1-py3-none-any.whl -
Subject digest:
f9127865e16d30a5b18db043d4b2c02e944abf0fd226761b95813178bf85a7e2 - Sigstore transparency entry: 2874372153
- Sigstore integration time:
-
Permalink:
audunarn/ANYstructure@86889fa51ff800a4124b88dd54045a78e7ba244e -
Branch / Tag:
refs/tags/v6.4.1 - Owner: https://github.com/audunarn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86889fa51ff800a4124b88dd54045a78e7ba244e -
Trigger Event:
release
-
Statement type: