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.1

  • 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.4.0. 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 --no-deps -e "C:\Github\ANY3dView[gpu]" -e "C:\Github\ANYmaterial" -e "C:\Github\ANYgeometry" -e "C:\Github\ANYmesh" -e "C:\Github\ANYfileIO[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. The coordinated editable refresh uses --no-deps so pip updates

the sibling metadata without trying to resolve older packages' narrow

transitive constraints.

ANYstructure 6.3.1 supports ANY3dView source checkouts in >=0.5.4,<0.6 and

ANYtk3D checkouts in >=0.5.3,<0.6. The launcher accepts shared checkouts only

inside those ranges. To select qualified checkouts explicitly, set

ANYSTRUCTURE_ANY3DVIEW_ROOT and ANYSTRUCTURE_ANYTK3D_ROOT 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

a version in >=0.3.2,<0.4. Otherwise the launcher and its repair command use the

qualified checkout at C:\Github\ANYsolver\.compat_anymesher_032. Set

ANYSTRUCTURE_ANYMESHER_ROOT to a checkout in >=0.3.2,<0.4; an invalid

override blocks startup.

The complete coordinated ranges are ANYsolver>=0.4.0,<0.5,

ANYgeometry>=0.4.1,<0.5, ANYmaterial>=0.1.1,<0.2,

ANYmesher>=0.3.2,<0.4, ANYfileio[semantics]>=0.2.1,<0.3,

ANYbuckling>=0.1.1,<0.2, ANY3dView[gpu]>=0.5.4,<0.6, and

ANYtk3D>=0.5.3,<0.6. Exact source authority can also be selected with the

corresponding ANYSTRUCTURE_ANYSOLVER_ROOT, ANYSTRUCTURE_ANYGEOMETRY_ROOT,

ANYSTRUCTURE_ANYMATERIAL_ROOT, ANYSTRUCTURE_ANYFILEIO_ROOT, and

ANYSTRUCTURE_ANYBUCKLING_ROOT variables. 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.1.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.1-py3-none-any.whl (31.8 MB view details)

Uploaded Python 3

File details

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

File metadata

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

Hashes for anystructure-6.3.1.tar.gz
Algorithm Hash digest
SHA256 bcf57444a2983335e3187a592fb3bb19e63899ec955b7056ce1a768f7bffdd00
MD5 f82ce5a5e5ff896ecc290ad98d666dff
BLAKE2b-256 84795c49507b2a122747a58bfc53b88b433e7c63a5f6550ba396bf4da2db4946

See more details on using hashes here.

Provenance

The following attestation bundles were made for anystructure-6.3.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: anystructure-6.3.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7757280f545392c9f991eaecd4f4b761bd27b48a251b57d4187df691c584f319
MD5 1c0b92cc80aa7228e93dae79ed1f6df0
BLAKE2b-256 c1503b91bb3ea6060d9a90a09087a6a1aed37f61075ff8bd82edc494ca73b38e

See more details on using hashes here.

Provenance

The following attestation bundles were made for anystructure-6.3.1-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

This release

6.3.1 This release

2 files

6.3.0

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