Hull / help
Sign in Request an invite

Optimiser, fairing & sweeps

Four tools that change the hull for you, or tell you what it would do. The optimiser reshapes it to cut drag; fairing smooths it; the Pareto and speed sweeps explore rather than change.

What the optimiser actually does

It is a gradient solver. Given your hull, your design speed and your weights, it works out which way to nudge each free control point to reduce drag, takes a step, and repeats until it cannot do better — or until your constraints stop it.

It only moves what you leave free. Every pin you set and every range you specify in the point inspector is honoured exactly. A fully pinned hull is a hull the optimiser cannot help with; a fully free hull is one it will happily turn into something unbuildable. The useful middle is where you spend your time.

It also always respects the physics of planing: the trim angle must stay between 2° and 6° and the wetted-length ratio must stay at or under 4, because outside that window the underlying model is not valid.

Picking a target

Optimization Target seeds the metrics menu with a preset. You can edit anything afterwards.

TargetWhat it sets upWhen to use it
Resistance Minimise total resistance. No stability guard beyond the planing window. (On a displacement hull this button reads Cruise drag — see below.) You want the fastest hull for the power, and you will check the behaviour yourself.
Balanced Minimise total resistance, and require at least 0.10° of porpoising margin. The default. Start here.
Stability Same, but demand 0.50° of porpoising margin — five times the cushion. You are worried about the boat becoming unstable in pitch at speed.

On a displacement hull

The same three buttons, anchored on different physics. There is no planing equilibrium to optimise against, so resistance comes from Holtrop-Mennen at your design speed and stability means roll stability — real GM, not the porpoising proxy, because a hull that never planes cannot porpoise.

ButtonWhat it optimises
Cruise drag Minimise Holtrop resistance at the design speed, subject only to the hull floating where it should.
Balanced The same, but hold GM at or above 0.60 m and keep a freeboard floor.
Stability Maximise transverse GM, with resistance kept as a lightly-weighted second objective.
The optimiser's resistance number and the panel's. Both now measure the same things. The optimiser used to substitute an approximate wetted surface and entrance angle so IPOPT would get smooth gradients, which made its figure read well above the panel's; it now measures both, the same way the Hydrostatics panel does. What is left is that the optimiser integrates the raw control polygon while the panel integrates the faired hull. On a 9 m launch the two agree to within about 4% across 3–7 kn. The solver log prints the wetted surface and entrance angle it used, so any remaining gap is checkable rather than mysterious.

The practical consequence is worth knowing: because the entrance angle is now measured off the waterline rather than assumed from length and beam, the optimiser can finally see the bow. A resistance-mode solve on a displacement hull may sharpen the entry where before it could only change the boat's overall length and beam.

A displacement solve also carries a second equilibrium condition the planing one does not: the hull must float with its centre of buoyancy under its centre of gravity, so the optimiser is solving for sinkage and trim together. The log reports the trim it found alongside an independent re-solve of the same hull, so you can see the two agree.

"Stability" here means pitch stability, not roll stability. Worth being blunt about, because the name invites the wrong assumption. Stability buys you a bigger cushion above the trim angle at which a planing hull starts porpoising — nothing to do with how much the boat leans. The solver log says so on every run.

If what you want is a boat that does not roll, the optimiser can do that too — it is just not what the three preset buttons steer. Add the Transverse GM row to the metrics menu and set it to max, or to ≥ with a floor such as 0.30 m. Beam and weight height are the levers, so expect it to widen the boat.
What is porpoising?

At speed, a planing hull is balanced on a cushion of pressure under its bottom. Trim it too far bow-up and that balance goes unstable: the boat starts oscillating in pitch, rhythmically and increasingly, bouncing the bow up and slamming it down. That is porpoising. It is unpleasant, it is hard on the boat, and it can be dangerous.

There is a critical trim angle above which it happens, and it depends on speed, loading and deadrise. Porpoising margin is how many degrees of headroom you have below that limit. Positive is safe; zero is on the edge.

Design speed

The Design speed slider — 5 to 45 knots on a planing hull, 3 to 20 on a displacement one (capped by your plan). The optimiser tunes the hull for this speed. A hull optimised at 30 kn is not automatically good at 15 kn — if you spend most of your time at cruise, optimise at cruise, not at the top end.

resistance speed → displacement semi-planing planing the hump most drag per knot — needs the most power to get past drag falls away as the hull lifts and wetted area shrinks
Why the design speed matters so much: a planing hull's drag curve is not a straight line. Getting over the hump is a different problem from being efficient once past it.

The metrics menu

Below the target buttons: one row per quantity the optimiser knows how to compute. Rows offer some subset of off, min, max, target, ≥ and ≤, plus a weight.

The Optimizer tab: a checklist of metrics — air drag, porpoising margin, pressure drag, skin friction, spray area, total resistance, trim angle, wetted area, the centres, deadrise at LCG, minimum freeboard and transverse GM — with porpoising margin held at or above 0.5 degrees and total resistance set to minimise, above the alignment rows and a Run optimizer button.
The Optimizer tab set to the balanced preset: porpoising margin held at ≥ 0.5° as a hard row, total resistance on min, everything else off.

The choices differ per row, because not every mode is meaningful for every quantity — skin friction and pressure drag can only be given a ceiling, for instance. The hard checkbox appears only on ≥ and ≤ rows, since it is only those that express a constraint the solver can be held to.

After a run, each row gets a badge — weak, balanced, dominant or hard — telling you how much it actually influenced the answer. A row marked weak is doing nothing; raise its weight or drop it.

The metrics

RowUnitWhat it is
Total resistanceNThe whole drag force. The usual thing to minimise.
Skin frictionNThe part from water rubbing along the wetted surface.
Pressure dragNThe part from lifting the boat — an unavoidable cost of planing.
Air dragNThe part from pushing the topsides through air.
Spray aream²How much hull is wetted by spray rather than solid water.
Wetted aream²The planing surface actually in the water at speed.
Hull surface aream²The total skin area — drives material cost and shell weight.
Porpoising margindegHeadroom below the pitch-instability limit. See above.
Trim angle τdegThe running trim at speed.
Wetted-length ratio λ—Wetted length divided by beam. A slenderness measure for the planing surface.
Centre of pressure (x)mWhere the hydrodynamic lift acts.
Centre of gravity (x)mWhere the weight acts.
Centre of buoyancy (x)mWhere the static buoyancy acts.
Centre of flotationmThe pivot of the waterplane.
Transverse GMmRoll stability. Offers max and ≥ — this is how you optimise for a boat that does not lean.
Min freeboard at DWLmThe lowest point of the sheer above water. Constrain this to stop the optimiser sinking your gunwale.
Resistance @ 5 kn (Holtrop)NLow-speed drag, from a displacement-regime method. Useful if the boat must also behave at harbour speeds.
Lateral underwater aream²Side area below water — course keeping.
Centre of lateral plane (x)mWhere that side area is centred.
Deadrise at LCGdegThe bottom V-angle at the point the weight acts.

Alignment rows

+ Add alignment pairs two comparable metrics with ≈, ≥ or ≤ and a tolerance. The classic is LCP ≈ LCG: make the lift act where the weight acts, so the boat runs at the trim you intended instead of fighting itself. A live δ pill shows the current gap.

Running it, and reading the log

Press Run optimizer. The Solver Log fills with timestamped lines from both the app and the solver — what it started from, what it is trading against what, and how it ended.

screenshot: the Optimizer tab mid-run, with the solver log still wanted — the capture above is the tab at rest
1440 × 900 — drop into static/shots/optimizer-log.webp

When it does not work

OutcomeWhat it meansWhat to try
Iteration limit It ran out of steps before settling. Usually the hull is far from anything sensible, or a range is pathologically tight. Loosen something.
Infeasible Your hard constraints cannot all be true at once. Turn the least important hard row soft, or widen its bound. The log names what it was fighting.
Error The geometry broke the physics — e.g. a chine above the waterline everywhere. Look at what you last changed in the section view.
In every one of those cases your original mesh is put back exactly as it was. A failed run costs you the wait, never your work.

One run at a time, per server. If someone else in your workspace is solving, you will be told to wait rather than being silently queued.

Overlays

Three checkboxes change what the viewports draw:

Alongside them, markers for LCG, LCP, LCB, LCF and LCLP with their live values — the quickest way to see whether the boat is in balance.

Auto-fairing paid plan

Hand-editing points leaves lines slightly lumpy. Fairing pulls the lumps out by minimising the bending energy of the curve — the mathematical version of springing a batten along the hull and letting it find its own shape.

"Pins, ranges, hard kinks, and transom/bow geometry are honored unless overridden below."

The controls

Fairing reports honestly when it cannot finish. If your pins and ranges keep pulling the curve back out of shape, it says so — "Fair stopped at the pass cap without fully converging" — rather than claiming success. If you see that, either accept it or relax whatever is fighting the smoothing.

Pareto sweep

For when two things you want are in conflict — less drag and more stability, say. Pick Axis A and Axis B, set Grid (3–10), and press Run Pareto sweep.

Grid is how many designs to try, not a grid per side: it walks the balance between your two axes in that many steps, from almost-all-A to almost-all-B, running one full optimisation at each. Ten is ten solves, and the panel estimates the time before you commit.

The scatter plot shows the runs that succeeded — faded for dominated (another design beat it on both axes), solid for the Pareto front, the set where you cannot improve one axis without giving up the other. Runs that came back infeasible are not plotted; they are reported as a count in the corner. Ringed points marked K1, K2, K3 are the knees: where the trade rate changes most sharply, which is usually where the sensible compromises live. Each has a load button to pull that hull into your project.

Speed sweep paid plan

A per-knot table for the current hull: one full equilibrium solve at every speed in the range you set. This is how you find out where the hump is and how much power you actually need.

Set Min (kn), Max (kn) and Step, then Run sweep. Up to 200 rows. Chart opens the same run as a plot.

Three summary pills sit above the table. hump is the transition hump — the speed where resistance peaks and then falls as the hull climbs onto plane. That is the power needed to get on plane. peak is the highest resistance anywhere in the range you swept, which for a planing hull is normally just your top speed — the power needed to hold it. They are different questions and sizing an engine needs both answered. min planing is the lowest speed the boat planes at at all.

A hull need not have a hump inside the range you swept. If the curve only climbs, hump reads none in swept range rather than nominating the fastest speed you happened to try — a number that would be your top-speed drag wearing the hump's name. When the sweep also starts above the displacement regime, the transition is probably hiding below it and a sweep lower to find the transition pill says so. Start from 5–6 kn if you are not sure.
ColumnMeaning
knSpeed.
τ°Running trim.
λWetted-length ratio.
R_tot NTotal resistance.
EHP kWEffective power — drag × speed. The power to move the hull, before propeller and drivetrain losses.
L_w m / S_w m²Wetted length and wetted area at that speed.
trim°Required motor trim; a * means it hit a limit.
statusWhether the row is trustworthy — see below.
Flagged rows are not failures, they are honesty. The planing model is only valid inside a window: trim between 2° and 6°, and wetted-length ratio at or under 4. Outside it — at low speed, where the boat is not planing at all, or where the solve clamps — the row is marked pre-planing, over trim, λ over, displ. or semi-plan. rather than being quietly presented as a real answer. One bad speed never kills the run.

Charting the sweep

The table answers "what is the number at 18 kn". Chart answers the other question — what shape is the curve. It plots speed across the bottom and any of the sweep's metrics up the side, including several the table has no column for: Cv, CL β, Vm, LCP, LCP residual and the friction/pressure split of the total resistance.

The Metrics list on the right is picker, key and readout at once: click a metric to show or hide it, and each row carries its value at whatever speed the crosshair is on. A metric the run produced no value for at any speed — the motor-trim figures with no outboard configured, or the friction and pressure split where the resistance blend withheld it — is not offered, and the list says how many were left out. Up to eight series at once.

The side axis changes meaning with how much you select, because these metrics are not on remotely the same scale — resistance runs to thousands of newtons while trim is a handful of degrees. One metric selected gives that metric's real units. Two gives a left and a right axis, each drawn in its series' own colour so you can tell which belongs to which. Three or more can only share an axis by being normalized — each series rescaled to its own range, so the shapes stay comparable but the side axis no longer reads in any unit. The caption under the plot always says which of the three you are looking at, and real values stay in the readout.

The coloured bands behind the curve are the status column. Each speed's band is the same flag the table shows, so you can see at a glance which stretch of the curve the planing model actually vouches for and which part is pre-planing or λ over. Dashed markers pick out the hump and the speed the boat comes on plane. Where a solve failed the line breaks rather than joining across the gap — a bridged line would be drawing an answer nobody computed.

If the geometry changes after a sweep, the table is marked geometry changed — table is stale. Re-run it.

A workable routine

  1. Get the weights roughly right first. Optimising against the wrong displacement wastes the run.
  2. Publish a version, so you can always get back.
  3. Pin what you have decided — the keel line, the sheer height, anything driven by the layout.
  4. Run Balanced at your real cruise speed.
  5. Read the log and the badges. Anything weak is not earning its place.
  6. Look at the hull. If the optimiser has done something silly, that is a missing constraint, not a bug — add it and re-run.
  7. Fair the result before exporting.