Skip to main content

picture

ANYstructure

ANYstructure is a desktop steel-structure design application for plate fields and cylinders, including weight, weld, and cost optimization. Calculations are based on DNV standards and recommended practices.

Current release: 6.3.0

  • Adds live Automatic, ModernGL GPU, and Tk software renderer selection to the maintained 3D model, mesh, and result views.
  • Preserves the current scene and camera when a renderer is replaced; a failed explicit GPU switch keeps the working viewer intact.
  • Uses the shared ANY3dView 0.5 contract while retaining the historical ANYtk3D compatibility module.

Earlier release history remains available in Git tags and release notes rather than being duplicated in this README.

Finite-element GUI integration

The FE GUI requires ANYsolver>=0.3,<0.4. Axial force, bending moment, shear force, torsional moment, pressure, and the 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 runtime 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.

The main FE sections use raised, contrasting horizontal dividers, and the result text and visualization have a vertical divider. Drag either divider to resize its panes. Solver errors and unsupported configurations remain visible; the GUI does not replace them with a lightweight estimate.

The GUI reflects solver-normalized analysis choices through ANYsolver's public resolve_runtime_analysis() contract; it does not depend on private solver helpers.

The material dropdowns are backed by ANYmaterial and include a Choose/edit material button. The Interfaces menu opens ANYmesher and the ANYfileio inspector inside the existing Tk event loop. Orthotropic selections are refused explicitly until the legacy scalar material controls can represent them without losing directional properties.


For documentation:

https://anystructure.readthedocs.io/en/latest/

For tutorials:

https://www.youtube.com/@ANYopenSoft

Development setup

ANYstructure is currently maintained as a Python package named anystruct. The GUI can still be launched through the ANYstructure console command after an editable install.

Recommended local setup:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install --upgrade -e "C:\Github\ANY3dView[gpu]" -e "C:\Github\ANYmaterial" -e "C:\Github\ANYgeometry" -e "C:\Github\ANYsolver\.compat_anymesher_023" -e "C:\Github\ANYio[semantics]" -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 editable bootstrap is intentionally ordered by dependency: viewer core, material and geometry, meshing, semantic file I/O, solver, independent buckling and Tk rendering, then ANYstructure. run_gui.py prints the same graph with the exact active Python executable if metadata or an import origin is stale.

ANYstructure 6.3.0 uses exact 0.5.0 source checkouts of ANY3dView and ANYtk3D. The launcher accepts the shared checkouts while their pyproject.toml files declare that version. To select different qualified checkouts explicitly, set $env:ANYSTRUCTURE_ANY3DVIEW_ROOT = "C:\path\to\ANY3dView-0.5.0" and/or $env:ANYSTRUCTURE_ANYTK3D_ROOT = "C:\path\to\ANYtk3D-0.5.0" before running run_gui.py. Invalid overrides block startup instead of falling back silently.

ANYmesher is selected with the same fail-closed rule. The shared C:\Github\ANYmesh checkout is used only while its pyproject.toml declares exactly version 0.2.3. Otherwise the launcher and its repair command use the qualified checkout at C:\Github\ANYsolver\.compat_anymesher_023. Set $env:ANYSTRUCTURE_ANYMESHER_ROOT = "C:\path\to\ANYmesher-0.2.3" to select a different exact 0.2.3 checkout; an invalid override blocks startup.

ANYsolver>=0.3,<0.4, ANYgeometry>=0.2.2,<0.3, ANYmaterial, ANYmesher>=0.2.3,<0.3, ANYfileio[semantics]>=0.2,<0.3, ANYbuckling>=0.1,<0.2, ANY3dView[gpu]>=0.5,<0.6, and ANYtk3D>=0.5,<0.6 are required runtime dependencies. Install the editable sibling checkouts above until compatible releases are available from PyPI. ANYgeometry is the shared neutral surface-geometry authority; materials, structural properties, loads, mesh controls, and solver state remain in their owning packages.

New geometry code should call anygeometry.generators directly. The anystruct.geometry_generators module provides thin plate, stiffened-panel, cylinder, and cone adapters for existing ANYstructure integrations, while anystruct.representation_geometry temporarily preserves the historical station-layout import path.

The central runtime/FEM and mesh-preview path now establishes one lazy, cached GeometryModel through those adapters. Existing ANYsolver and GUI consumers receive a geometry-backed dictionary projection with unchanged keys and values; the owner model is built once only when a geometry-aware consumer requests it. Semantic groups remain available out-of-band, while thicknesses, sections, materials, loads, and analysis settings remain external. ANYsolver's legacy runtime currently still builds its FE mesh from the dictionary projection; that transitional payload conversion remains until ANYsolver accepts the neutral model directly.

Launch the desktop app after installation:

ANYstructure

From a source checkout, the same GUI can be launched with:

python run_gui.py

Dependency groups are also available for focused installs:

python -m pip install -r requirements-core.txt
python -m pip install -r requirements-ml.txt
python -m pip install -r requirements-excel.txt

Equivalent package extras are exposed as core, ml, excel, dev, and all. The default package install still includes Excel and ML dependencies for backwards compatibility.

Excel project import requires a local Excel installation and is not expected to run in basic automated tests. The external Excel-sheet DNV PULS calculation workflow has been removed from this release; ML-CL remains available.

Calculation scope

  • Minimum plate thickness (DNV-OS-C101)
  • Minimum section modulus of stiffener/plate (DNVGL-OS-C101)
  • Minimum shear area (DNVGL-OS-C101)
  • Plate buckling (DNVGL-RP-C201)
  • Shell buckling (DNV-RP-C202)
  • Machine-learning buckling predictions based on PULS data
  • Semi-analytical buckling through ANYbuckling
  • Fatigue for plate/stiffener connections (DNVGL-RP-C203)

Compartments (tank pressures) are created automatically.

Pressures on external hull (or any other generic location) is defined by specifying equations.

You can optimize cylinders, single plate/stiffener field or multiple. Geometry of double bottom can be optimized.

Contributions and bug reports are welcome through GitHub. General feedback can also be sent to audunarn@gmail.com.

Screenshot (this example can be loaded from file "ship_section_example.txt"):

picture

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anystructure-6.3.0.tar.gz (31.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anystructure-6.3.0-py3-none-any.whl (31.8 MB view details)

Uploaded Python 3

File details

Details for the file anystructure-6.3.0.tar.gz.

File metadata

  • Download URL: anystructure-6.3.0.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

Hashes for anystructure-6.3.0.tar.gz
Algorithm Hash digest
SHA256 0140b67d02b7616acbc9e2978782c091d66131e396ac62614bc463079cd4615b
MD5 8fdb9febfbc2eacdeda272701696e095
BLAKE2b-256 14a78f0bb7c673d43db9782cd891d5eef7ff16fe27cef04b4e365455746b3d3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for anystructure-6.3.0.tar.gz:

Publisher: publish.yml on audunarn/ANYstructure

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anystructure-6.3.0-py3-none-any.whl.

File metadata

  • Download URL: anystructure-6.3.0-py3-none-any.whl
  • Upload date:
  • Size: 31.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for anystructure-6.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a67d824160bd52793ec84ee2d5d67fe33472c63894faff62579285f8977d18f8
MD5 8b3ddb4eed32c046c497eb76013a6e73
BLAKE2b-256 5ac627a3685206aa8b41cf555f52e442ee95155fe32c0932eab9460454ab8fcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for anystructure-6.3.0-py3-none-any.whl:

Publisher: publish.yml on audunarn/ANYstructure

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

6.3.1

2 files

This release

6.3.0 This release

2 files

6.1.1

2 files

6.1.0

2 files

6.0.3

2 files

6.0.2

2 files

6.0.1

2 files

6.0.0

2 files

5.3.3

2 files

5.3.2

2 files

5.3.1

2 files

5.3.0

2 files

5.2.0

1 file

5.1.4

1 file

5.1.3

1 file

5.1.2

1 file

5.1.1

1 file

5.1.0

1 file

5.0.2

1 file

5.0.1

1 file

5.0.0

1 file

4.14

1 file

4.13

1 file

4.12

1 file

4.11

1 file

4.10

1 file

4.9.1

1 file

4.9

1 file

4.8

1 file

4.7

1 file

4.6.15

1 file

4.6.14

1 file

4.6.12

1 file

4.6.11

1 file

4.6.10

1 file

4.6.9

1 file

4.6.8

1 file

4.6.7

1 file

4.6.6

1 file

4.6.5

1 file

4.6.4

1 file

4.6.3

1 file

4.6.2

1 file

4.6.1

1 file

4.6

1 file

4.5

1 file

4.4

1 file

4.3

1 file

4.2

1 file

4.1

1 file

4.0

1 file

3.32

1 file

3.31

1 file

3.3

1 file

3.2

1 file

3.1

1 file

3.0

1 file

2.99

1 file

2.98

1 file

2.97

1 file

2.96

1 file

2.95

1 file

2.94

1 file

2.93

1 file

2.92

1 file

2.91

1 file

2.9

1 file

2.8

1 file

2.7

1 file

2.6

1 file

2.5

1 file

2.4

1 file

2.3

1 file

2.2

1 file

2.1

1 file

2.0

1 file

1.91

1 file

1.9

1 file

1.8

1 file

1.7

1 file

1.6

1 file

1.5

1 file

1.4

1 file

1.3

1 file

1.2

1 file

1.1

1 file

1.0.2

1 file

1.0.1

1 file

1.0

1 file

0.7.0

1 file

0.6.5

1 file

0.6.4

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.6

1 file

0.5.5

1 file

0.5.4

1 file

0.5.3

1 file

0.5.2

1 file

0.5.1

1 file

0.5.0

1 file

0.4.4

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.9

1 file

0.3.8

1 file

0.3.7

1 file

0.3.6

1 file

0.3.5

1 file

0.3.4

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.22

1 file

0.1.21

1 file

0.1.20

1 file

0.1.19

1 file

0.1.18

1 file

0.1.17

1 file

0.1.16

1 file

0.1.15

1 file

0.1.14

1 file

0.1.13

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page