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
Release history Release notifications | RSS feed
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 shipshape-0.4.0.tar.gz.
File metadata
- Download URL: shipshape-0.4.0.tar.gz
- Upload date:
- Size: 70.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
348bc4b9ac7d36d6dd30f38a9664002a0e3cd74b6254540f6673ac66f8dac6dd
|
|
| MD5 |
d85835070cd8638e21a4ee70fe018cb4
|
|
| BLAKE2b-256 |
f94265aec5bd1188c0ebb775bedfabb96602c456e5524fa09bbb617fd3b03638
|
Provenance
The following attestation bundles were made for shipshape-0.4.0.tar.gz:
Publisher:
publish.yml on shipshape-marine/shipshape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shipshape-0.4.0.tar.gz -
Subject digest:
348bc4b9ac7d36d6dd30f38a9664002a0e3cd74b6254540f6673ac66f8dac6dd - Sigstore transparency entry: 954442537
- Sigstore integration time:
-
Permalink:
shipshape-marine/shipshape@65aea8b94bafac6084ad950c99e8cb1d72128190 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/shipshape-marine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@65aea8b94bafac6084ad950c99e8cb1d72128190 -
Trigger Event:
push
-
Statement type:
File details
Details for the file shipshape-0.4.0-py3-none-any.whl.
File metadata
- Download URL: shipshape-0.4.0-py3-none-any.whl
- Upload date:
- Size: 88.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b07d83c682c49a838125f1b4402f8b3dfc6cdd1cc5ff8d2d74f5de6cd607b1aa
|
|
| MD5 |
246b2298d6dc85ad9812247d0b2ad51d
|
|
| BLAKE2b-256 |
d91d5ef6c5d0d33be65e2970037e28dcd3f5154a0dc517f085ff41b98169b818
|
Provenance
The following attestation bundles were made for shipshape-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on shipshape-marine/shipshape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shipshape-0.4.0-py3-none-any.whl -
Subject digest:
b07d83c682c49a838125f1b4402f8b3dfc6cdd1cc5ff8d2d74f5de6cd607b1aa - Sigstore transparency entry: 954442540
- Sigstore integration time:
-
Permalink:
shipshape-marine/shipshape@65aea8b94bafac6084ad950c99e8cb1d72128190 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/shipshape-marine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@65aea8b94bafac6084ad950c99e8cb1d72128190 -
Trigger Event:
push
-
Statement type: