🌊 Seastead Wave Simulation Software Comparison

Open-source and free tools for simulating a semi-submersible seastead with articulated legs, cables, and wave response

Design Being Simulated

A small semi-submersible seastead (~36,000 lbs) with a 40Γ—16 ft living platform, four 4-ft diameter Γ— 24-ft long cylindrical legs/floats at 45Β° angles, connected by cables at the submerged ends. Key simulation requirements:

⭐ Top Recommendation: Project Chrono (HydroChrono + PyChrono + MoorDyn)

This is the single best option for your specific needs. Here's why:

Second choice: Capytaine + MoorDyn + custom Python time-domain solver β€” more manual assembly but very capable for hydrodynamics. Good if you find Chrono's build process frustrating.

Third choice: DualSPHysics β€” most visually impressive, handles nonlinear effects naturally, but steep learning curve and slow computation for design iteration.

Quick Comparison Table

Criterion Project Chrono
(HydroChrono)
Capytaine +
MoorDyn + Python
WEC-Sim +
MoorDyn
DualSPHysics OpenFOAM Blender
(physics)
Cost Free / Open Source Free / Open Source $$$ MATLAB required Free / Open Source Free / Open Source Free / Open Source
MATLAB Cost Estimate N/A N/A ~$3,500–$5,500/yr
(MATLAB + Simulink + Simscape Multibody)
N/A N/A N/A
Nonlinear Buoyancy
(variable submergence)
βœ… Yes β€” mesh-based
hydrostatics at each timestep
⚠️ Partial β€” linear BEM;
need custom nonlinear
Froude-Krylov corrections
⚠️ Partial β€” has nonlinear
buoyancy option but
still BEM-based
βœ… Fully nonlinear β€”
SPH particles handle
any submergence
βœ… Fully nonlinear β€”
volume-of-fluid method
❌ Not physically
accurate
Articulated Joints
(pivot legs)
βœ… Excellent β€” core
multibody engine
⚠️ Manual β€” must code
joint constraints in
your time-domain solver
βœ… Yes β€” via Simscape
Multibody joints
❌ Very difficult β€”
SPH doesn't natively
do articulated rigid bodies
❌ Requires coupling
with external solver
⚠️ Has joints but
physics is not accurate
Cable/Mooring
Dynamics
βœ… MoorDyn built in βœ… MoorDyn via Python βœ… MoorDyn integrated ⚠️ Limited β€” can add
spring connections
❌ Needs external
coupling (MoorDyn)
❌ No real cable
dynamics
Snap Load Detection βœ… Monitor MoorDyn
tension vs. time; detect
slack→tension transitions
βœ… Same β€” MoorDyn
output analysis
βœ… Same ⚠️ Possible with
post-processing
❌ Not practical ❌ No
Wave Generation βœ… Regular, irregular
(JONSWAP, PM), user-defined
βœ… You generate via
Python; very flexible
βœ… Built-in wave
spectrum options
βœ… Excellent wave
generation including
breaking waves
βœ… Excellent via
waves2Foam / olaFlow
⚠️ Visual only β€”
not real wave physics
3D Visualization βœ… Real-time 3D +
video export
⚠️ Must build with
matplotlib/VTK/Blender
post-processing
βœ… Simulink 3D
visualization
βœ… ParaView β€” excellent
fluid visualization
βœ… ParaView βœ… Best visual
quality possible
Python Scripting βœ… PyChrono β€” full API βœ… Native Python ❌ MATLAB only ⚠️ XML config +
Python post-processing
⚠️ Python utilities
exist but core is C++
βœ… Python scripting
built in
AI Coding Help
(Claude/Cursor)
βœ… Good β€” Python;
documentation in
training data
βœ… Excellent β€” pure
Python; well-documented
⚠️ Moderate β€” MATLAB;
less AI coding support
⚠️ Limited β€” XML
config; less standard
⚠️ Moderate β€” complex
C++ dictionaries
βœ… Good β€” Python
Blender scripting
Linux Support βœ… Native βœ… Native ⚠️ Via MATLAB Linux βœ… Native + GPU βœ… Native (best on Linux) βœ… Native
GPU Utilization ⚠️ Optional (Chrono::GPU
for granular, not needed here)
N/A (CPU-based) N/A βœ… Core feature β€”
GPU massively accelerates SPH
⚠️ Some GPU solvers ⚠️ GPU for rendering
Accuracy for This
Design
Good β€” engineering
quality for concept stage
Good β€” BEM hydro is
industry standard
Good β€” proven for
wave energy converters
Very Good β€” fully
nonlinear physics
Excellent β€” highest
fidelity CFD
Poor β€” not engineering
grade
Time to First
Simulation
2–4 weeks 2–3 weeks 1–2 weeks (if you
have MATLAB)
3–6 weeks 4–8 weeks 1 week (but not
accurate)
Time to Useful
Engineering Results
4–6 weeks 4–6 weeks 3–5 weeks 6–10 weeks 8–16 weeks Never (for engineering)
Computation Speed
(per simulation)
Minutes to ~1 hour Minutes (time-domain)
+ BEM pre-solve
Minutes Hours to days
(even with GPU)
Hours to days Minutes

Detailed Assessment of Each Option

⭐ 1. Project Chrono (HydroChrono + PyChrono + MoorDyn)

Free & Open Source Python (PyChrono) C++ core Linux βœ“ Windows βœ“

What It Is

Project Chrono is a physics-based simulation engine from the University of Wisconsin–Madison. It is fundamentally a multibody dynamics engine β€” exactly what you need for articulated rigid bodies with joints, cables, and constraints. HydroChrono is the module that adds hydrodynamic forces (wave excitation, radiation damping, hydrostatic restoring). MoorDyn is integrated for mooring/cable dynamics.

Why It's Best for Your Design

  • Articulated legs with pivots: Chrono was built for this. You define rigid bodies (platform, 4 legs) and connect them with revolute joints. The solver handles all constraint forces automatically.
  • Cables: MoorDyn is a lumped-mass mooring line model that handles tension-only, slack, and dynamic snap loads. It's literally built into Chrono.
  • Nonlinear hydrostatics: HydroChrono can compute buoyancy forces on your actual mesh geometry at each timestep, so as your inclined cylinders plunge deeper, the buoyancy force updates correctly.
  • Wave forces: Supports linear wave theory with nonlinear Froude-Krylov corrections β€” a good middle ground for your brainstorming stage.
  • Visualization: Built-in real-time 3D rendering (Irrlicht or newer VSG engine). You see the simulation running. You can record videos.

Limitations

  • Build/install can be involved on Linux (CMake, dependencies). Conda packages exist but may lag behind.
  • HydroChrono is relatively new β€” fewer tutorials than WEC-Sim.
  • Still requires BEM pre-processing (via Capytaine or WAMIT) for frequency-dependent hydrodynamic coefficients. But Capytaine is free and Python-based.
  • Not as many YouTube demos of marine applications as you'd expect β€” it's more common in vehicle and robotics simulation.

Estimated Time to Working Simulation

  • Install + first demo running: 3–5 days
  • Your seastead geometry modeled: 1–2 weeks
  • Articulated legs + cables + waves: 3–4 weeks
  • Parametric wave height sweeps: 4–6 weeks

YouTube Examples

Search for "Project Chrono hydrodynamics" or "HydroChrono". Relevant videos:

Website

projectchrono.org | GitHub | HydroChrono Docs

2. Capytaine + MoorDyn + Custom Python Time-Domain Solver

Free & Open Source Pure Python Linux βœ“ Windows βœ“

What It Is

Capytaine is a Python-based BEM (Boundary Element Method) solver for wave-body interaction β€” it computes the frequency-dependent hydrodynamic coefficients (added mass, radiation damping, wave excitation forces) for your geometry. MoorDyn handles cable/mooring dynamics. You then write a time-domain integration script in Python that combines these forces with rigid body dynamics to simulate motion in waves.

Why It's Good

  • All Python: Perfect for Claude Code and Cursor.ai assistance. You have maximum control.
  • Capytaine is pip-installable: pip install capytaine β€” easiest install of any option.
  • MoorDyn has Python bindings: pip install moordyn
  • Industry-standard hydrodynamics: BEM is the workhorse method used by naval architects worldwide.
  • Flexible: You can add nonlinear Froude-Krylov forces, viscous drag (Morison equation) on the legs, etc.

Limitations

  • Assembly required: There's no single "simulate" button. You must write the time-domain ODE integrator yourself (though it's standard and AI can help).
  • Articulated joints: You must implement the joint constraints yourself in your time-domain solver. This is doable but adds significant complexity.
  • Linear BEM: Capytaine solves for a mean wetted surface. For your large-motion inclined cylinders, you need to add nonlinear corrections β€” possible but more coding.
  • Visualization: No built-in 3D visualization. You'd use matplotlib for quick plots, or export to VTK/Blender for 3D animation. This is extra work.

Estimated Time

  • Install + first BEM solve: 1–2 days
  • Single rigid body in waves (no joints): 1–2 weeks
  • Articulated bodies + cables: 3–5 weeks (significant coding)
  • Good visualization: Add 1–2 weeks

YouTube Examples

Website

capytaine.github.io | MoorDyn docs

3. WEC-Sim + MoorDyn (MATLAB/Simulink)

Paid β€” MATLAB Required MATLAB / Simulink Linux βœ“ Windows βœ“

What It Is

WEC-Sim (Wave Energy Converter Simulator) is an open-source MATLAB/Simulink code developed by NREL and Sandia National Labs. It uses BEM hydrodynamic data (from Capytaine, WAMIT, or NEMOH), integrates multibody dynamics via Simscape Multibody, and includes MoorDyn for mooring lines.

Why It's Mentioned

  • Most mature and well-documented open-source tool for wave-body interaction with articulated bodies and mooring lines.
  • Excellent for your articulated leg design: Simscape Multibody handles joints natively.
  • Nonlinear buoyancy options: Has built-in nonlinear hydrostatic and Froude-Krylov force calculation.
  • Large user community: Lots of examples, tutorials, and published papers.
  • Visualization: Simscape Mechanics Explorer provides 3D animation during simulation.

Why It's Probably NOT Right for You

  • Cost: You need MATLAB (~$940/yr), Simulink (~$1,500/yr), and Simscape Multibody (~$1,500/yr). For a non-student, non-academic user in Anguilla, the total is roughly $3,500–$5,500 per year. There are no special Caribbean territory discounts. Home licenses may be cheaper (~$150/yr for MATLAB alone) but don't include Simulink or Simscape.
  • Not open source in practice: While WEC-Sim itself is open source, the required MATLAB/Simulink/Simscape stack is proprietary.
  • No Claude/Cursor advantage: MATLAB scripting is supported by AI tools but the Simulink block diagram editing is graphical and harder to automate.

Estimated Time (if you had MATLAB)

  • Install + first tutorial: 2–3 days
  • Your seastead modeled: 1–2 weeks
  • Full articulated model with cables: 2–4 weeks

YouTube Examples

Website

WEC-Sim Documentation | GitHub

Cost Warning: At ~$3,500–$5,500/year for the required MATLAB toolbox stack, this is not practical as a "free brainstorming tool." Consider it only if you already have MATLAB access through an institution, or if you later want to validate results from a free tool.
4. DualSPHysics

Free & Open Source C++ / CUDA GPU Accelerated Linux βœ“ Windows βœ“

What It Is

DualSPHysics uses Smoothed Particle Hydrodynamics (SPH) β€” instead of solving equations on a grid, the water is represented as millions of particles. This naturally handles splashing, breaking waves, large motions, and complex geometry. GPU acceleration (CUDA) makes it practical.

Why It's Appealing

  • Fully nonlinear: No linear assumptions whatsoever. Your inclined cylinders moving from 1/3 submerged to fully submerged? No problem β€” the particles just flow around whatever geometry is there.
  • Visually stunning: The particle visualizations in ParaView look amazing and are very intuitive for understanding wave-structure interaction.
  • Your GPU: You said you have a Linux machine with a very good GPU β€” this is exactly what DualSPHysics wants.
  • Wave generation: Excellent wave makers, absorbers, and support for regular/irregular/focused waves.
  • Floating bodies: Good support for rigid floating bodies with springs and dampers.

Limitations β€” And They're Significant for Your Case

  • No articulated joints: This is the dealbreaker. DualSPHysics models rigid bodies but does NOT natively support articulated multibody dynamics (revolute joints between bodies). You can have multiple independently floating bodies, and you can add spring connections, but implementing your pivot-leg mechanism would require custom code modifications β€” a major effort.
  • Limited cable dynamics: No MoorDyn integration (as of 2024). There are spring-based constraints but no proper mooring line dynamics with catenary/snap-load behavior.
  • Slow per simulation: Even with a good GPU, a 3D simulation of your seastead at adequate resolution might take hours to days per wave condition. Not great for parametric sweeps.
  • Steep learning curve: XML configuration files for case setup. Not as intuitive as Python scripting. GUI tools exist (DesignSPHysics for FreeCAD) but are limited.
  • Accuracy: SPH has known issues with pressure field accuracy and requires careful tuning of resolution and artificial viscosity. It's better for qualitative than quantitative engineering at typical resolutions.

Estimated Time

  • Install + first dam break demo: 1–3 days
  • Simple cylinder in waves: 1–2 weeks
  • Your full seastead (rigid, no joints): 3–4 weeks
  • Adding articulation/cables: Very difficult β€” months if possible at all without custom code

YouTube Examples

Website

dual.sphysics.org | GitHub

Best Use Case: If you first determine your seastead design using Chrono or Capytaine, and then want to do a final high-fidelity check of wave impact and flooding scenarios with the geometry locked (no articulation needed), DualSPHysics would be excellent. Think of it as a later-stage validation tool rather than a brainstorming tool.
5. OpenFOAM

Free & Open Source C++ Linux βœ“ (native) Windows (WSL)

What It Is

OpenFOAM is the gold standard open-source CFD (Computational Fluid Dynamics) toolkit. It solves the full Navier-Stokes equations on a 3D mesh. For marine applications, it uses a Volume-of-Fluid (VOF) method to track the free surface.

Why It's Mentioned

  • Highest fidelity: If you want to know exactly what the water does around your geometry, OpenFOAM is the answer.
  • Wave generation: olaFlow / waves2Foam add-ons provide excellent wave generation and absorption.
  • Floating body motion: The sixDoFRigidBodyMotion solver handles floating bodies.

Why It's NOT Right for You Now

  • No multibody dynamics: OpenFOAM handles single floating bodies, not articulated systems with joints and cables. You'd need to couple it with an external solver (like Chrono β€” which is possible but extremely complex).
  • Extreme learning curve: Case setup involves dozens of configuration files. Meshing alone (snappyHexMesh) is a multi-day learning exercise.
  • Very slow: A 3D floating body in waves simulation can take days on a cluster. Not suitable for design iteration.
  • Text-file configuration: No GUI. Everything is dictionaries of dictionaries.

Estimated Time

  • Install + first tutorial: 2–5 days
  • Simple cylinder in waves: 2–4 weeks
  • Your full seastead: 2–4 months (single body only)
  • Articulated + cables: Not practical without external coupling

YouTube Examples

Website

openfoam.com | openfoam.org

6. Blender (Physics Simulation)

Free & Open Source Python scripting GPU rendering Linux βœ“ Windows βœ“

What It Is

Blender is a 3D modeling, animation, and rendering tool. It has built-in physics engines for rigid body dynamics, cloth, fluid, and soft body simulation.

The Short Answer: Not for Engineering

You were told correctly β€” Blender's physics simulations are not engineering-grade, and this is still true in 2024/2025.

  • Blender's rigid body physics (Bullet engine) has no concept of buoyancy, hydrodynamic forces, or wave loading.
  • Blender's fluid simulation (Mantaflow / FLIP) is designed for visual effects, not engineering accuracy. It does not properly couple with rigid body dynamics for floating bodies.
  • There is no way to get meaningful force/tension data from Blender simulations.
  • You cannot determine at what wave height a cable snaps β€” the physics simply don't model this.

Where Blender IS Useful

  • Visualization and rendering: Export simulation results from Chrono/Capytaine/DualSPHysics and render beautiful animations in Blender.
  • Geometry creation: Model your seastead geometry in Blender, export as STL/OBJ for use in simulation tools.
  • Communication: Make presentation videos of your design concept.

Custom Physics Add-ons?

There have been some attempts to add buoyancy physics to Blender (e.g., the "Ocean" modifier + custom scripts), but none provide engineering-quality hydrostatic/hydrodynamic simulation. You could theoretically write a Python add-on that applies approximate buoyancy forces using Blender's Python API, but this would be reinventing the wheel β€” and doing it worse than existing dedicated tools.

YouTube Examples

Verdict

Do NOT use Blender as your simulation tool. DO use it for geometry prep and final visualization/rendering of results from a real simulation tool.

Other Options Worth Mentioning

OrcaFlex (Commercial β€” For Reference)

Commercial β€” Very Expensive

OrcaFlex by Orcina is the industry-standard tool for exactly your problem β€” floating structures with mooring lines and articulated connections in waves. It handles nonlinear buoyancy on inclined cylinders, cable dynamics with snap loads, pivot joints, and produces excellent 3D visualizations.

Cost: ~$15,000–$30,000/year for a commercial license. Far beyond brainstorming budget.

Why mention it: When you get to the naval architect stage, this is likely what they'll use or recommend. Your Chrono/Capytaine results can be validated against OrcaFlex. Also, OrcaFlex has a free 3-month trial that might be worth exploring for validation of one design.

orcina.com/orcaflex

ProteusDS (Commercial) / MAP++ (Free)

MAP++ is Free

MAP++ (Mooring Analysis Program): NREL's quasi-static mooring analysis tool. Simpler than MoorDyn (no dynamics β€” just static catenary solutions) but useful for initial cable sizing. Python-callable. Free.

ProteusDS: Commercial tool by DSA (Dynamic Systems Analysis). Good for mooring and cable dynamics but expensive.

AQWA (ANSYS): Industry-standard BEM + time-domain solver with mooring. Extremely expensive (ANSYS license).

Recommended Workflow

Phase 1: Quick Start with Capytaine (Week 1–2)

  1. Install Capytaine and MoorDyn: pip install capytaine moordyn β€” takes minutes.
  2. Model your leg geometry: Create a 4-ft diameter, 24-ft long cylinder mesh using capytaine.mesh_cylinder() or import from Blender/FreeCAD.
  3. Run BEM solver: Get hydrodynamic coefficients (added mass, damping, excitation force) for a single inclined cylinder at 45Β°. This tells you how waves interact with your legs.
  4. Quick sanity check: Do the forces and natural periods make sense? Use this to validate your intuition about the design.
  5. AI coding help: Claude Code / Cursor.ai can generate the Python scripts for all of this. Capytaine has good documentation that's in AI training data.

Phase 2: Full Simulation with Project Chrono (Week 2–6)

  1. Install Project Chrono with HydroChrono: Use conda or build from source. Follow the HydroChrono getting-started guide.
  2. Import BEM data from Capytaine: HydroChrono reads the hydrodynamic database that Capytaine produces (HDF5 format).
  3. Build multibody model:
    • Main platform body (40Γ—16 ft box)
    • 4 cylindrical leg bodies
    • Revolute joints connecting legs to platform (your pivot mechanism)
    • MoorDyn cables connecting leg bottoms
  4. Add wave excitation: Define regular waves, then irregular sea states (JONSWAP spectrum).
  5. Run simulations: Sweep wave height from calm to extreme. For each run:
    • Log cable tensions vs. time
    • Log joint reaction forces
    • Log body positions and rotations
    • Detect slack events (tension β†’ 0) and snap loads (sudden tension spike)
  6. Visualize: Use Chrono's built-in 3D rendering to watch the simulation and record videos.
  7. Iterate: Change cable lengths, leg angles, add/remove redundant cables, modify joint stiffness.

Phase 3: Validation and Communication (Week 6+)

  1. Optional DualSPHysics check: Take your best design and run a high-fidelity SPH simulation of one critical wave condition to validate nonlinear effects.
  2. Build scale model: Use simulation results to inform physical model design and test conditions.
  3. Render in Blender: Export simulation trajectories and render publication-quality videos for presentations to naval architects, investors, or the seastead community.
  4. Naval architect handoff: Provide your Chrono simulation files and results. A naval architect can validate with OrcaFlex or AQWA.

Special Considerations for Your Design

Inclined Cylinder Hydrodynamics

The Challenge

Your 45Β° inclined cylinders create complications that most tutorials don't cover:

  • BEM limitations: BEM solvers (Capytaine, WAMIT) assume small motions around a mean position. When your cylinders move from 1/3 to fully submerged, the wetted surface changes dramatically β€” violating the linear assumption.
  • Solution in Chrono: HydroChrono can apply nonlinear Froude-Krylov forces computed on the instantaneous wetted surface, which partially addresses this. For the radiation/diffraction forces, the linear BEM approximation is still used but is less critical for your geometry.
  • Morison equation approach: For slender cylinders (length >> diameter, which at 24 ft Γ— 4 ft = 6:1 ratio yours qualify), the Morison equation is actually more appropriate than BEM. It naturally handles variable submergence by integrating forces along the instantaneous wetted length. Both Chrono and custom Python can implement this.

Recommendation

Use a hybrid approach: Morison equation on the legs (handles variable submergence naturally) + panel method on the main platform body if needed. This is standard practice in offshore engineering for semi-submersibles.

Cable Snap Load Analysis

What Causes Snap Loads

A snap load (snatch load) occurs when a cable goes slack, the connected bodies separate freely, and then the cable suddenly goes taut β€” creating a very high impulsive tension. This is one of the most dangerous failure modes for your design.

How to Simulate

  • MoorDyn uses a lumped-mass model that naturally captures slack-taut transitions. It outputs tension at every node along the cable at each timestep.
  • Detection algorithm: Monitor each cable's tension time history. Flag when tension drops to zero (slack) and record the peak tension when it re-engages. Compare peak tension to cable breaking strength.
  • Key insight: The snap load magnitude depends on the relative velocity of the cable endpoints when it goes taut. Higher waves β†’ more relative motion β†’ higher snap loads.

What to Look For

  • At what significant wave height (Hs) does any cable first go slack?
  • What's the maximum snap load tension and is it below cable breaking strength with appropriate safety factor (typically 3Γ— for marine)?
  • Does cable pre-tension help? (Slightly pre-tensioning cables can prevent slack events.)
  • Does your redundant rectangle cable path prevent failure when one cable breaks?

Cost and Complexity Summary

Tool Software Cost Learning Curve Handles Your Full Design? AI Coding Assist? Best For
Project Chrono $0 Moderate (2–4 weeks) βœ… Yes β€” joints, cables, waves, visualization Good (PyChrono) Complete seastead simulation
Capytaine + MoorDyn $0 Moderate (2–3 weeks base, more for joints) ⚠️ Partial β€” joints require custom coding Excellent (pure Python) Hydrodynamics + cable analysis
WEC-Sim ~$3,500–5,500/yr Lower (1–2 weeks) βœ… Yes Moderate (MATLAB) If you already have MATLAB
DualSPHysics $0 Steep (3–6 weeks) ❌ No articulated joints Limited (XML config) Nonlinear wave impact validation
OpenFOAM $0 Very Steep (4–8 weeks) ❌ No multibody / cables Limited High-fidelity CFD (later stage)
Blender $0 Low for modeling ❌ Not engineering-grade physics Good (Python API) Geometry creation + visualization only

Practical Getting Started Guide: Project Chrono

Installation on Linux

  1. Option A β€” Conda (easier):
    conda create -n seastead python=3.10
    conda activate seastead
    conda install -c conda-forge -c projectchrono pychrono
    pip install capytaine moordyn meshio numpy scipy matplotlib

    Note: Check if HydroChrono is included in the conda pychrono package. If not, you may need to build from source.

  2. Option B β€” Build from source (more control):
    git clone https://github.com/projectchrono/chrono.git
    cd chrono
    mkdir build && cd build
    cmake .. -DENABLE_MODULE_PYTHON=ON \
             -DENABLE_MODULE_IRRLICHT=ON \
             -DENABLE_MODULE_HYDROCHRONO=ON
    make -j$(nproc)
    # Follow HydroChrono build instructions at:
    # https://uwmadison-hydrochrono.github.io/
  3. Verify installation:
    python -c "import pychrono; print('Chrono OK')"
    python -c "import capytaine; print('Capytaine OK')"
    python -c "import moordyn; print('MoorDyn OK')"

First Script Outline (for Claude Code / Cursor.ai to help flesh out)

"""
Seastead simulation - Project Chrono + HydroChrono + MoorDyn
Step 1: Hydrodynamic preprocessing with Capytaine
Step 2: Time-domain simulation with Chrono
"""

# === STEP 1: BEM preprocessing with Capytaine ===
import capytaine as cpt
import numpy as np

# Create cylinder mesh for one leg (4 ft diameter, 24 ft long)
leg_radius = 4 * 0.3048 / 2  # convert to meters  (0.6096 m)
leg_length = 24 * 0.3048       # convert to meters (7.3152 m)

# Create mesh, rotate 45 degrees
cylinder = cpt.FloatingBody(
    mesh=cpt.mesh_horizontal_cylinder(
        length=leg_length, radius=leg_radius,
        center=(0, 0, -leg_length/2 * np.sin(np.pi/4)),
        resolution=(20, 20, 20)
    ),
    name="leg"
)
# ... set up dofs, run BEM solver, save results ...

# === STEP 2: Chrono time-domain simulation ===
import pychrono as chrono
import pychrono.irrlicht as chronoirr
# import hydrochrono  # HydroChrono module

# Create Chrono system
system = chrono.ChSystemNSC()
system.Set_G_acc(chrono.ChVectorD(0, 0, -9.81))

# Create main platform body
platform = chrono.ChBodyEasyBox(
    40*0.3048, 16*0.3048, 1.0,  # dimensions in meters
    500,  # density (adjust for correct mass)
    True, True  # visualization, collision
)
platform.SetPos(chrono.ChVectorD(0, 0, 3.0))  # above waterline
system.Add(platform)

# Create 4 leg bodies
legs = []
for i, (dx, dy) in enumerate([(-1,-1), (-1,1), (1,-1), (1,1)]):
    leg = chrono.ChBodyEasyCylinder(
        leg_radius, leg_length,
        300,  # density (for correct buoyancy)
        True, True
    )
    # Position and rotate to 45 degrees
    # ... (calculate corner positions) ...
    system.Add(leg)
    legs.append(leg)

    # Add revolute joint between leg and platform
    joint = chrono.ChLinkRevolute()
    joint.Initialize(platform, leg,
        chrono.ChFrameD(corner_position, rotation))
    system.Add(joint)

# Add MoorDyn cables
# ... (configure MoorDyn lines between leg bottoms) ...

# Add HydroChrono hydrodynamic forces
# ... (load BEM data, apply to each body) ...

# Add wave excitation
# ... (configure regular/irregular waves) ...

# Set up visualization
vis = chronoirr.ChVisualSystemIrrlicht()
vis.AttachSystem(system)
vis.Initialize()

# Simulation loop
while vis.Run():
    system.DoStepDynamics(0.01)  # 10ms timestep
    vis.Render()

    # Log cable tensions, detect snap loads
    # ... (query MoorDyn forces) ...
    

This is a skeleton β€” Claude Code / Cursor.ai can fill in the details based on the HydroChrono documentation and examples.

Wave Height Testing Strategy

Progressive Wave Height Testing Protocol

What to Simulate

Start with small waves and increase until failure. For each wave condition, run for at least 20+ wave periods to capture steady-state response.

Sea State Significant Wave Height (Hs) Peak Period (Tp) Description
1 - Calm0.5 ft (0.15 m)3–5 sBaseline β€” everything should be fine
2 - Slight1.5 ft (0.5 m)4–6 sTypical Caribbean fair weather
3 - Moderate3 ft (1.0 m)5–8 sTypical trade wind seas
4 - Rough5 ft (1.5 m)6–9 sStrong trade winds / approaching storm
5 - Very Rough8 ft (2.5 m)7–10 sStorm conditions β€” find cable slack onset
6 - High12 ft (3.5 m)8–12 sSevere storm β€” likely cable snap loads
7 - Very High16+ ft (5+ m)10–14 sHurricane conditions β€” find ultimate failure

What to Record at Each Level

  • Maximum and minimum tension in each cable (min = 0 means slack occurred)
  • Maximum tension rate of change (dT/dt β€” high values indicate snap loads)
  • Maximum platform heave, roll, and pitch angles
  • Maximum leg rotation at pivot joints
  • Relative motion between platform and leg bottoms
  • Freeboard (minimum height of platform above water) β€” does it get swamped?

Anguilla / Caribbean Context

Near Anguilla, typical trade wind seas are 3–5 ft. However, hurricane season (June–November) can bring swells of 10–20+ ft. For a seastead that can relocate slowly, the strategy might be:

  • Designed to operate comfortably in up to 5 ft seas
  • Survive (with reduced comfort) up to 10 ft seas
  • Relocate to sheltered waters or haul out before major hurricanes

YouTube Video References by Tool

Tool Search Terms / Links What You'll See
Project Chrono "project chrono floating body wave"
"hydrochrono simulation"
"project chrono mooring"
Project Chrono YouTube Channel
Floating bodies in waves, vehicle dynamics, multibody systems. Marine examples are growing but fewer than other tools. Look for floating wind turbine demos.
Capytaine / BEM "capytaine boundary element wave"
"NEMOH floating body" (predecessor)
Mostly academic presentations. Capytaine itself doesn't produce 3D animations β€” it outputs hydrodynamic coefficients. Videos are of results plotted or post-processed.
WEC-Sim "WEC-Sim simulation waves"
"WEC-Sim multibody"
Good 3D animations of wave energy converters in waves. Articulated bodies, mooring lines visible. Closest visual match to what you want.
DualSPHysics "DualSPHysics floating structure waves"
"DualSPHysics coastal engineering"
DualSPHysics YouTube Channel
Visually the most impressive β€” you see individual water particles splashing. Floating boxes and cylinders in wave tanks. Great for intuitive understanding of wave-structure interaction.
OpenFOAM "OpenFOAM floating body waves CFD"
"OpenFOAM offshore structure"
High-fidelity free surface visualizations. Pressure fields, velocity vectors. Very detailed but typically single rigid body.
MoorDyn "MoorDyn mooring line simulation" Mooring line dynamics β€” you'll see lines going slack and taut, which is exactly your cable analysis need.

Final Notes

On Using AI Coding Assistants (Claude Code / Cursor.ai)

This is a significant advantage for the Python-based tools. Here's how to use them effectively:

⚠️ Important Engineering Disclaimer

All of these tools produce models, not reality. At the brainstorming stage, any of the recommended tools gives useful comparative information (Design A vs. Design B, effect of adding a cable, etc.). However:

Summary: What to Do This Week

  1. Day 1: Install Capytaine and MoorDyn via pip. Run Capytaine's built-in example (floating sphere).
  2. Day 2–3: Model one of your 4-ft diameter, 24-ft long cylinders in Capytaine. Compute hydrodynamic coefficients at 45Β° inclination.
  3. Day 3–5: Install Project Chrono (try conda first). Run a PyChrono demo with visualization.
  4. Day 5–7: Start building your seastead model in PyChrono β€” platform + one leg + revolute joint. Get the joint working without waves first.
  5. Week 2: Add HydroChrono wave forces and MoorDyn cables. First simulation of complete system in small waves.
  6. Week 3–4: Refine model, add all cables, run wave height sweeps, record videos.

Document prepared for seastead design brainstorming. Last updated: 2025.

Tools and capabilities described based on publicly available information as of early 2025.

All software recommendations are for the specific use case described (semi-submersible seastead with articulated legs and cables).