Skip to main content

HullProd logo

HullProd

CI PyPI version DOI Python 3.10–3.12 License: BSD-3-Clause

Geometry-based producibility screening for ship hull surfaces.

HullProd computes a compact signature of double-curvature intensity, sign, and areal composition directly from native IGES/STEP BRep geometry or triangulated STL/OBJ/PLY surfaces. It also exports distributed fields, plots, validity, and representation provenance.

Installation

HullProd requires Python 3.10–3.12. The intended public installation command is:

pip install hullprod

One installation includes both the native OpenCascade and triangle-mesh backends; no separate CAD extra or system OpenCascade installation is required.

Quick start

Assess native CAD directly:

hullprod myvessel.iges

The same command works for a triangulated surface:

hullprod myvessel.stl

HullProd selects the backend from the file extension and writes a predictable myvessel_hullprod/ result directory.

To supply the normalization length explicitly:

hullprod myvessel.iges --lref 200000

--lref uses the working length unit of the input geometry. For CAD imported in millimetres, 200000 means 200000 mm, or 200 m. HullProd prints the source unit, working unit, and interpreted value before integration and warns about a large discrepancy from the automatic geometric span without changing the supplied value.

See Getting started for output-directory controls and other normal options.

Recommended signature

HullProd 1.0 reports exactly:

[I_D, I_D_plus, I_D_minus,
 a_C_flat, a_C_single, a_C_elliptic, a_C_saddle]
  • I_D measures total normalized double-curvature intensity.
  • I_D_plus and I_D_minus separate elliptic/synclastic and saddle/reverse/anticlastic intensity.
  • The four a_C values are represented-valid-area fractions for flat, singly curved, elliptic, and saddle/reverse regions.

Together they describe intensity, sign, and areal extent. HullProd does not combine them into a universal scalar producibility score. The default quasi-zero factors are h_f = k_f = 1e-4; these are numerical classification thresholds, not manufacturing limits. See Metrics for the equations and interpretation.

What HullProd produces

A normal result directory contains:

  • signature.json and signature.csv for the recommended global signature;
  • report.html for a compact, static user report;
  • validity.json and provenance.json for scientific interpretation and audit;
  • plots/ with developability-density and curvature-class maps; and
  • fields/ with ParaView-readable VTP and portable CSV surface fields.

The complete output contract and file roles are documented in Outputs.

Supported geometry

Representation Formats Backend
Native BRep .iges, .igs, .step, .stp Direct CAD derivatives and trimmed-domain quadrature
Triangle mesh .stl, .obj, .ply Discrete curvature reconstruction on the supplied mesh

Unsupported formats fail with an actionable error; HullProd does not silently convert a BRep to a mesh for canonical global evaluation or fit CAD to a mesh.

BRep and mesh realizations

Native BRep evaluation is the canonical realization when source CAD is available. Its global metrics come from direct surface derivatives and trimmed-domain integration, not from the display/export tessellation.

Mesh evaluation is supported when triangulated geometry is the available representation. Its derivative-based values are explicitly representation-sensitive and should be interpreted with the recorded mesh quality and refinement provenance. This distinction does not make mesh results invalid; it makes their represented geometry part of the result.

Without --lref, both backends use the same conceptual automatic convention: a rigid-motion-invariant principal-axis projected span, with a deterministic centroid-radial fallback for isotropic samples. It is recorded as auto_principal_span and is never described as L_pp.

Python API

The Python API uses the same assessment pipeline as the CLI:

from hullprod import assess

result = assess("myvessel.iges")
print(result.signature)

See the Python API guide.

Documentation

README plus versioned Markdown under docs/ are the complete v1 documentation system; no hosted documentation site is required.

Scientific scope and limitations

HullProd is a geometry-based early-design screening tool, not a fabrication-cost predictor. It does not directly predict labor, forming route, production schedule, or shipyard-specific performance. It does not perform panelization, seam placement, forming simulation, optimization, or geometry repair.

Auxiliary, mesh-diagnostic, and experimental quantities are kept separate from the recommended signature. Their status is explained in Experimental quantities.

Funding

Development of HullProd was supported by the U.S. Office of Naval Research (ONR), under Grant No. N00014-26-1-2164, as part of the BEAM project (Bayesian Exploration and Optimization for Hull-form Architecture and Producibility Modeling).

The views and conclusions expressed in this software and its documentation are those of the authors and do not necessarily reflect the views of the Office of Naval Research.

Citation

If you use HullProd in scientific work, please cite the archived software release:

Serani, A. (2026). HullProd: Geometry-Based Producibility Metrics for Ship Hull Forms (Version 1.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22287357

Machine-readable citation metadata are provided in CITATION.cff. Please also cite the associated scientific publication once its final journal metadata are available.

Contributing

Bug reports, documentation corrections, reproducible analytical tests, and carefully scoped numerical improvements are welcome. See CONTRIBUTING.md before proposing changes to scientific definitions.

License

HullProd is distributed under the BSD-3-Clause license. The bundled analytical sphere fixtures are project-owned; restricted benchmark geometry is not redistributed.

Release files for hullprod 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hullprod 1.0.1
File Size Uploaded
hullprod-1.0.1.tar.gz 127.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hullprod 1.0.1
File Interpreter ABI Platform
hullprod-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 230.8 kB

Release files / hullprod-1.0.1.tar.gz

Download URL hullprod-1.0.1.tar.gz
Size 127.2 kB
Tags Source
SHA-256 checksum
How to use checksums
af8e6d8da1bf3247f1c92e06c01279ae0cb007662c0761dce99181831f24f00e
BLAKE2b-256 checksum
How to use checksums
62ce75480e6cf3781fe3de50f6136e4bd9876ab3f5f45ed97e0f1c90bce21dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / hullprod-1.0.1-py3-none-any.whl

Download URL hullprod-1.0.1-py3-none-any.whl
Size 103.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6d65560792ff5e6b7bfd73ce494a7627ac1c9dcfe21a2e53c491fa1be695421
BLAKE2b-256 checksum
How to use checksums
c30a0f579c4a37ea4df9f04dc6a29c20f71f511aa2d62d615c436d65a9c5835d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

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