100 Commits
Author SHA1 Message Date
Antoine Anceau fec53f4012 refactor(rules): update criteria with <= operator where applicable
CI / Lint Rust (push) Canceled after 0s
CI / Lint Python (push) Canceled after 0s
CI / Test Rust (push) Canceled after 0s
CI / Build wheels (macos-latest) (push) Canceled after 0s
CI / Build wheels (ubuntu-latest) (push) Canceled after 0s
CI / Build wheels (windows-latest) (push) Canceled after 0s
CI / Test Python 3.10 (push) Canceled after 0s
CI / Test Python 3.11 (push) Canceled after 0s
CI / Test Python 3.12 (push) Canceled after 0s
CI / Test Python 3.13 (push) Canceled after 0s
CI / Test Python 3.9 (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
Documentation / Build documentation (push) Canceled after 0s
2026-07-07 06:56:58 +02:00
Antoine Anceau 11879f2992 chore(release): bump version to 0.9.3 2026-07-06 22:40:43 +02:00
Antoine Anceau 3340e30966 Merge branch 'feature/moulded-breadth' into main 2026-07-06 22:32:47 +02:00
Antoine Anceau 47791837a1 docs(api): add moulded_breadth property to CompleteStabilityResult 2026-07-06 22:32:40 +02:00
Antoine Anceau 09b9ee976a fix(rules): use true moulded breadth instead of BWL in IS Code 2008 2026-07-06 22:32:36 +02:00
Antoine Anceau 2f036b4516 feat(bindings): expose moulded breadth to Rhai engine and Python bindings 2026-07-06 22:32:32 +02:00
Antoine Anceau a1bb4d83ad feat(stability): compute and store moulded breadth at amidships in CompleteStabilityResult 2026-07-06 22:32:27 +02:00
Antoine Anceau b4a9b78af3 feat(hydrostatics): add calculate_section_breadth_range helper 2026-07-06 22:24:34 +02:00
Antoine Anceau 9436245cea Merge branch 'feature/criterion-comparison-operators' 2026-07-06 21:58:03 +02:00
Antoine Anceau d2364da8be style: fix rustfmt issues 2026-07-06 21:53:28 +02:00
Antoine Anceau 2ea672c010 docs: Update scripting documentation with criterion comparison operators 2026-07-06 21:52:57 +02:00
Antoine Anceau bb082ea5b5 test: Add tests for criterion with operators 2026-07-06 21:46:05 +02:00
Antoine Anceau df7fbd3894 feat: Add explicit comparison operator support to criterion 2026-07-06 21:46:05 +02:00
Antoine Anceau 8d1375da3c chore(release): bump version to 0.9.2 2026-06-29 22:02:29 +02:00
Antoine Anceau a5cd1bd065 fix(viz): align Python visualization transforms with Rust core 2026-06-29 21:56:25 +02:00
Antoine Anceau d88b86f689 Merge branch 'fix/submerged-centroid-windage' 2026-06-29 08:19:20 +02:00
Antoine Anceau aba982fe62 style(test): fix python lint errors 2026-06-29 08:18:08 +02:00
Antoine Anceau 5e73eb443b test(integration): add test for windage-only silhouette handling 2026-06-29 08:18:08 +02:00
Antoine Anceau 7619c01bd5 fix(stability): fallback to T/2 for submerged centroid with windage-only silhouettes 2026-06-29 08:16:26 +02:00
Antoine Anceau ac59403bd8 fix(silhouette): correctly compute polygon centroid using signed area 2026-06-28 22:33:48 +02:00
Antoine Anceau fca8c9ac42 ci: bump GitHub Actions to support Node.js 24 2026-06-22 22:29:54 +02:00
Antoine Anceau 1cb548ed6a chore(release): bump version to 0.9.1 2026-06-22 22:25:33 +02:00
Antoine Anceau 176afe5b78 Merge branch 'feature/wind-lever-arm' 2026-06-22 22:13:04 +02:00
Antoine Anceau 3525f7320d docs: fix pygments csv lexer warning in loading doc 2026-06-22 22:12:18 +02:00
Antoine Anceau dae37fe6f0 style: fix linting and formatting issues 2026-06-22 22:09:59 +02:00
Antoine Anceau 6c8c79428a docs: update stability and API documentation for exact wind lever arm 2026-06-22 22:04:29 +02:00
Antoine Anceau 9055d4cb94 feat(python): expose submerged centroid in wind heeling data bindings 2026-06-22 22:00:57 +02:00
Antoine Anceau 856319339e feat(core): implement exact wind lever arm calculation using submerged and emerged centroids 2026-06-22 22:00:46 +02:00
Antoine Anceau 12637a8e86 chore(release): bump version to 0.9.0 2026-05-22 07:59:03 +02:00
Antoine Anceau 188ac70408 docs: update READMEs 2026-05-21 22:25:15 +02:00
Antoine Anceau 0a573e7c4f style: fix linting issues 2026-05-21 22:20:54 +02:00
Antoine Anceau 1bb4ca374e Merge branch 'feature/loading-condition' 2026-04-23 06:18:28 +02:00
Antoine Anceau d95f327cd4 docs: add downloadable csv template for loading conditions 2026-04-22 22:25:43 +02:00
Antoine Anceau 0a2dd4ac3c docs: add csv import to readmes 2026-04-22 22:23:44 +02:00
Antoine Anceau e599a741f9 feat(loading): add csv import for loading conditions 2026-04-22 22:21:26 +02:00
Antoine Anceau 7927d9912c fix(rust): use total displacement in from_loading for proper hydrostatics reporting 2026-04-22 22:04:45 +02:00
Antoine Anceau 6f33fb309b docs: update stability and hydrostatics documentation for from_loading 2026-04-22 21:45:36 +02:00
Antoine Anceau 56caef7b31 test(python): add tests for from_loading calculators methods 2026-04-22 21:42:34 +02:00
Antoine Anceau 45d0993fb7 feat(python): add from_loading bindings to calculators 2026-04-22 21:35:09 +02:00
Antoine Anceau 089880a10d feat(core): add from_loading convenience methods to calculators 2026-04-22 21:32:48 +02:00
Antoine Anceau ea1ea475b3 docs: add LoadingCondition documentation and update READMEs 2026-04-19 22:28:57 +02:00
Antoine Anceau 4100907dcf test(python): add resolve_items test 2026-04-19 22:28:51 +02:00
Antoine Anceau 5f0d1a36bb feat(python): expose item_displacement, item_cog and resolve_items bindings 2026-04-19 22:28:44 +02:00
Antoine Anceau eaaf934a2a feat(loading): add item_displacement, item_cog and resolve_items 2026-04-19 22:28:37 +02:00
Antoine Anceau d680b9d446 style(python): fix flake8 formatting in test_loading.py 2026-04-19 19:39:17 +02:00
Antoine Anceau dc81cb4a83 fix(rust): fix clippy derivable_impls and reorder pub use imports 2026-04-19 19:13:17 +02:00
Antoine Anceau ce1c6653da style(rust): run cargo fmt on python bindings 2026-04-19 18:38:15 +02:00
Antoine Anceau f414844fe8 test(python): add tests for LoadingCondition 2026-04-19 18:34:40 +02:00
Antoine Anceau 1a442d7f4b feat(python): export LoadingCondition classes in __init__.py 2026-04-19 18:33:14 +02:00
Antoine Anceau 43dfc0dfe2 feat(python): add pyi type stubs for LoadingCondition 2026-04-19 18:32:43 +02:00
Antoine Anceau 718363a67a feat(python): add PyO3 bindings for LoadingCondition 2026-04-19 18:31:02 +02:00
Antoine Anceau df18e430d7 feat(rust): add LoadingCondition data structures 2026-04-19 18:13:36 +02:00
Antoine Anceau ff4cd50561 chore(release): bump version to 0.8.0 2026-03-06 13:16:51 +01:00
Antoine Anceau 4381bd0050 Merge branch 'feature/precompute-contact-surfaces' 2026-03-02 21:52:32 +01:00
Antoine Anceau 14f892bc02 docs: add API reference for ContactSurface pre-computation 2026-03-02 21:50:47 +01:00
Antoine Anceau 9a98735542 test(python): add tests for pre-computed contact surface functionality 2026-03-01 15:25:36 +01:00
Antoine Anceau e4874e1e1c feat(python): expose ContactSurface API to Python bindings 2026-03-01 15:25:36 +01:00
Antoine Anceau dbc41d8f27 feat(hydrostatics): utilize pre-computed contact surfaces for fast lookup 2026-03-01 15:25:35 +01:00
Antoine Anceau 276bac8685 feat(core): implement ContactSurface pre-computation with adaptive threshold 2026-03-01 15:25:23 +01:00
Antoine Anceau 7bd7c258d3 Merge branch 'fix/conventions-and-downflooding' 2026-02-28 21:54:43 +01:00
Antoine Anceau 440480eb68 feat(python): expose DeckEdge side parameter and update API docstrings 2026-02-28 21:51:40 +01:00
Antoine Anceau 8344f02fe2 docs(hydrostatics): explicitly document trim, heel and COG sign conventions 2026-02-28 21:51:40 +01:00
Antoine Anceau 5d7b8690ea feat(deckedge): add optional side parameter to from_file 2026-02-28 21:51:40 +01:00
Antoine Anceau 74f370f562 test(downflooding): correct starboard Y coordinate sign in test 2026-02-28 21:47:10 +01:00
Antoine Anceau edc4e9bfae Merge branch 'feature/hull-thickness-hydrostatics' into main 2026-02-26 22:46:21 +01:00
Antoine Anceau 08a611bc98 fix: clean up unused mut/vars, dead CoB code, update GZ test for realism, and document thickness limitations 2026-02-26 22:42:28 +01:00
Antoine Anceau 36bd2ffb92 docs: document hull thickness properties and multihull creation 2026-02-26 22:02:23 +01:00
Antoine Anceau 813d71fe2c test(python): add integration tests for hull thickness functionality 2026-02-26 22:02:23 +01:00
Antoine Anceau 5df327d422 feat(python): expose hull thickness and Vessel.from_hulls in bindings 2026-02-26 22:02:23 +01:00
Antoine Anceau 8fe185e585 feat(core): implement hull plate thickness and contact area in hydrostatics 2026-02-26 22:02:23 +01:00
Antoine Anceau dbc336c793 Merge branch 'feature/tank-permeability' 2026-02-25 22:20:39 +01:00
Antoine Anceau d4fe7e1f04 feat(tanks): add 98% and 99% fill levels to max FSM calculation 2026-02-25 19:06:45 +01:00
Antoine Anceau af010b012e docs: document tank permeability parameter 2026-02-25 18:52:11 +01:00
Antoine Anceau b3f26b0408 test(python): verify Tank permeability property in tests 2026-02-25 18:32:10 +01:00
Antoine Anceau 57adf9d625 feat(python): expose Tank permeability to Python bindings 2026-02-25 18:31:57 +01:00
Antoine Anceau f6c67d24d9 feat(tanks): add permeability parameter to Tank struct and calculations 2026-02-25 18:31:42 +01:00
Antoine Anceau faf450d3f5 chore(release): bump version to 0.7.0 2026-02-25 07:31:41 +01:00
Antoine Anceau 6c7b0e2ffc style: fix python lint errors 2026-02-25 07:16:41 +01:00
Antoine Anceau 3a5604a524 Merge branch 'feature/is-code-stability-tests' into main 2026-02-24 22:42:10 +01:00
Antoine Anceau b30ba1d200 feat(rules): add HSC Code 2000 monohull intact stability script 2026-02-24 22:39:31 +01:00
Antoine Anceau 13166dbb73 feat(rules): add Division 222 French intact stability criteria script 2026-02-24 21:53:18 +01:00
Antoine Anceau 8591c47d8a test: add IS Code 2008 unit tests and stability rhai scripts 2026-02-24 21:48:31 +01:00
Antoine Anceau 5b47d493af Merge branch 'feature/stability-options-freeboard' into main 2026-02-24 21:28:53 +01:00
Antoine Anceau 4643bc5602 docs: document fixed_trim and freeboard options in sphinx and python type stubs 2026-02-24 21:09:17 +01:00
Antoine Anceau fc67a9b3e0 feat: add deck edge freeboard property to StabilityPoint and Python bindings 2026-02-24 21:07:13 +01:00
Antoine Anceau 66ea2f9eea Merge branch 'feature/gz-curve-trim-options' (add fixed_trim option to stability calculations) 2026-02-24 18:04:39 +01:00
Antoine Anceau d448c05fb0 chore: fix flake8 python linting errors 2026-02-24 18:00:58 +01:00
Antoine Anceau 211e081ed8 feat: implement fixed trim option for stability calculations 2026-02-24 17:52:38 +01:00
Antoine Anceau 14b7ae7764 fix(stability): use secant method for accurate free trim convergence 2026-02-24 17:40:02 +01:00
Antoine Anceau 5a1187791b chore(ci): remove windows-arm64 target due to linker issues 2026-02-13 15:02:14 +01:00
Antoine Anceau 2bea3925c5 fix(ci): use maturin-action for windows-arm64 cross-compilation 2026-02-13 14:54:15 +01:00
Antoine Anceau 8717005f51 fix(ci): fix YAML syntax error in publish workflow 2026-02-13 14:42:25 +01:00
Antoine Anceau 22f5f8d02b chore(release): bump version to 0.6.4 2026-02-13 14:40:23 +01:00
Antoine Anceau 6dbdecb03d chore(release): bump version to 0.6.3 2026-02-13 13:54:50 +01:00
Antoine Anceau 1f00f11f4c feat: Implement FSM modes and refactor Tank for reference semantics
- Refactor Vessel to store tanks as Arc<RwLock<Tank>> (SharedTank) to support Python reference semantics.

- Update StabilityCalculator and HydrostaticsCalculator to handle SharedTank locking.

- Implement FSM modes (Actual/Maximum/Fixed) in GZ curve calculation for better accuracy at large angles.

- Update Python bindings and type stubs to expose new Tank capabilities and FSM control.
2026-02-13 13:54:14 +01:00
Antoine Anceau 5e659a18e2 chore(release): bump version to 0.6.2 2026-02-13 09:52:37 +01:00
Antoine Anceau 34e68de821 Merge branch 'fix/dxf-ocs-transform' 2026-02-13 09:44:56 +01:00
Antoine Anceau 6ba6312f6c fix(dxf): handle OCS transformation for inverted extrusion directions 2026-02-13 09:43:02 +01:00
Antoine Anceau a8ada09de4 Merge branch 'fix/gz-calculation-bug' 2026-02-13 09:20:21 +01:00
Antoine Anceau c3e840e9fc feat(python): expose vessel_cog/cog and update documentation 2026-02-13 09:13:14 +01:00