Skip to main content

Open-source parametric vessel design and validation library

Project description

shipshape

Open-source parametric vessel design and validation library.

Shipshape provides boat-design-independent tools for naval engineering analysis. It is used by Solar Proa CAD but can be applied to any parametric vessel design.

Modules

Module Description Requires FreeCAD
parameter Merge base parameters and compute derived values via a project-supplied plugin No
mass Compute component masses from a FreeCAD design and material properties Yes
buoyancy Find equilibrium pose (sinkage, pitch, roll) using Newton-Raphson iteration Yes
gz Compute the GZ righting-arm curve over a range of heel angles Yes
physics Center-of-gravity and center-of-buoyancy calculations Yes
validate_structure Structural validation: aka, mast, spine, brace, gunwale, wave slam, capsize analysis No

Installation

pip install shipshape

For modules that require FreeCAD geometry (mass, buoyancy, gz, physics), install FreeCAD via conda-forge:

conda install -c conda-forge freecad

For diagram generation (validate_structure plots):

pip install shipshape[diagrams]

CLI Usage

Each module can be run as a CLI tool via python -m shipshape.<module>.

parameter

Merges boat and configuration JSON files, then calls a project-supplied compute_derived() function to calculate derived values.

PYTHONPATH=. python -m shipshape.parameter \
    --compute myproject.parameter.compute \
    --boat constants/boats/boat.json \
    --configuration constants/configurations/config.json \
    --output artifact/parameters.json

The --compute argument is a dotted module path. The module must export a compute_derived(data: dict) -> dict function.

mass

python -m shipshape.mass \
    --design artifact/boat.design.FCStd \
    --materials constants/material/materials.json \
    --output artifact/boat.mass.json

buoyancy

python -m shipshape.buoyancy \
    --design artifact/boat.design.FCStd \
    --materials constants/material/materials.json \
    --output artifact/boat.buoyancy.json

gz

python -m shipshape.gz \
    --design artifact/boat.design.FCStd \
    --buoyancy artifact/boat.buoyancy.json \
    --output artifact/boat.gz.json \
    --output-png artifact/boat.gz.png

validate_structure

python -m shipshape.validate_structure \
    --parameters artifact/parameters.json \
    --mass artifact/boat.mass.json \
    --gz artifact/boat.gz.json \
    --output artifact/boat.validation.json

License

MIT

Project details


Download files

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

Source Distribution

shipshape-0.5.0.tar.gz (70.8 kB view details)

Uploaded Source

Built Distribution

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

shipshape-0.5.0-py3-none-any.whl (89.1 kB view details)

Uploaded Python 3

File details

Details for the file shipshape-0.5.0.tar.gz.

File metadata

  • Download URL: shipshape-0.5.0.tar.gz
  • Upload date:
  • Size: 70.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shipshape-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4d52df32df8964a29d63744c55efb31f735f67238f3b54227040305de21cc8ab
MD5 02cb96df87ea093095cb5afc4a70a8df
BLAKE2b-256 f83996b21d15ffc429660671e798f15be3ef4e1fd66c9248a36c2b9d925e07b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for shipshape-0.5.0.tar.gz:

Publisher: publish.yml on shipshape-marine/shipshape

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

File details

Details for the file shipshape-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: shipshape-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 89.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shipshape-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 694be3e5c9d8cf0f81546a73dd236f3ad2a863df3f711a1c6da3752862b944c5
MD5 7b691ff2c4282f0de7b02b2a401bd2a5
BLAKE2b-256 5cb69454472159496860af4e04542038d24ad0138d4cf0bb75f89c5207eda5bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for shipshape-0.5.0-py3-none-any.whl:

Publisher: publish.yml on shipshape-marine/shipshape

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page