FreeCAD
Parametric 3-D CAD: sketch, constrain, extrude, and change any dimension later.
bed+boulders.stl and coconut.stl.Open-source engineering lab
Everything you need to go from this browser toy to a real CFD run of a coconut behind a boulder. Every tool here is free, and each one is battle-tested in research and industry.
$30,000 → $0
Model the river bed, the boulders and the coconut, then export STL for meshing.
Parametric 3-D CAD: sketch, constrain, extrude, and change any dimension later.
bed+boulders.stl and coconut.stl.Browser-based professional CAD with free education and hobby plans. It works on a laptop in a Bali café.
Chop the water and air into cells, fine where things happen and coarse elsewhere.
A scriptable mesh generator with a Python API. Great for 2-D river reaches and quick 3-D tetrahedral meshes.
A geometry, meshing and study platform from CEA/EDF. It pairs with Code_Saturne and exports to OpenFOAM.
Run the actual physics: free surface, turbulence, and a floating body that moves with the flow.
A finite-volume CFD toolbox, the workhorse of open-source CFD.
interFoam (VOF free surface) plus sixDoFRigidBodyMotion for the floating body.GPU smoothed-particle hydrodynamics with native floating bodies. No mesh needed.
SU2 (compressible and aero, with adjoint), Basilisk (adaptive free-surface), FEniCS (finite elements), Code_Saturne (EDF), PyVista (3-D plotting in Python).
Turn gigabytes of numbers into pictures you can reason about.
Post-processing for huge datasets: streamlines, iso-surfaces, animations, Python scripting.
alpha.water = 0.5), streamlines, and the coconut's track from VTK.Before any big run, prototype the physics in a few hundred lines.
The offline version of this lab, a D2Q9 lattice-Boltzmann eddy plus a side-view roller model, is a few hundred lines of NumPy.
T = W/(kU) and the rise speed, parameter sweeps, and figures.FreeCAD or Onshape → bed+boulders.stl and coconut.stl (sphere, D ≈ 0.175 m).
blockMesh box about 12 × 4 × 2 m, plus snappyHexMesh refined to level 3–4 at the coconut and the shear line (or Gmsh / Salome).
OpenFOAM interFoam (or foamRun -solver incompressibleVoF) with k-ω SST and sixDoFRigidBodyMotion. Recalibrate the mass first: the lab's 2.67 kg is probably too heavy. Expect 5–20 M cells and hours to days on a workstation for ~60 s of physical time.
DualSPHysics on a gaming GPU with <floatings>, particle spacing dp ≈ 2 cm.
ParaView: the alpha.water = 0.5 iso-surface, streamlines, and the coconut's centre-of-mass track. Escape = it crosses the reattachment line. Compare the residence time with T = W/(kU).