Foil experiments · fuselage geometry

The section a fuselage really presents

A fuse only lies parallel to the flow in a drawing. In flight it is pitched nose-up, and the cut the water crosses is a long thin aerofoil with roughly six times the chord of the fuse height. Its shape is the fuse's own cross-section outline, stretched along the chord. That makes the corner radii an aerofoil decision.

Your fuse and the cut

drag to rotate, scroll to zoom

What the water crosses

Best proportions for this outline

Keeps the outline you picked and looks only for the height and width that carry the same vertical stiffness and the same material at the least drag.

Show the angle across your whole speed range

Yours against a reference

Fuseh × wChordt/c Blunt LEBlunt TEDrag StiffnessArea
Show more detail

Drag against angle

Water crossing the section

Flow enters at the left. The section sits in the middle. Its wake trails right.

Show more detail

This is a lattice Boltzmann solver. It does not solve the flow equations directly. It tracks how many notional particles move in each of nine directions on a grid, lets them collide, and lets the flow emerge from that. It handles messy separated wakes without falling over, which is exactly what a blunt fuse produces.

The oncoming flow is tilted briefly to knock the wake off centre. A symmetric body on a symmetric grid otherwise sits in the symmetric solution forever, even when that solution is unstable, so nothing would ever shed. Whether the oscillation grows or dies after that nudge is the measurement.

It settles the flow, measures the shedding period, records exactly one period and loops those frames. Nothing is solving while you watch, which is why it costs a few seconds up front and nothing after.

It runs about a thousand times below the real Reynolds number, so read it for whether the shape stays attached or sheds, never for a number. Plenty of shapes that hold steady here would shed in the water.

Pressure and boundary layer

source panel, then Thwaites and Head
How the slice is computed

Put the fuse axis along x with the nose at x=0, lateral across the fuse as y, vertical as z. With the fuse pitched nose-up by α, the water runs along V(cosα, 0, sinα).

A streamwise plane contains that vector. For a tall narrow fuse the flow is essentially two-dimensional in the planes cutting across the thin direction, the same way flow over a mast is two-dimensional in horizontal planes. Those planes are −x sinα + z cosα = d. With u = x cosα + z sinα and v = y:

t(u)/2 = (w(x)/2) · Φ(ζ), where ζ = 2z/h(x).

Φ is the fuse's cross-section outline: half-width as a fraction of the maximum, against normalised height. Because ζ runs linearly from −1 to +1 along the cut, the streamwise thickness distribution is that outline stretched along the chord. A square-cornered fuse gives a rectangle. An elliptical fuse gives an ellipse. For the water to see an aerofoil, the cross-section has to be that aerofoil, stood on end.

Chord follows c ≈ h / sinα. At α = 0 the cut becomes the plan section of chord L, so the model passes through the familiar picture continuously.

Where the design angle comes from

The fuse angle relative to the water is θ − γ, which is also the front wing's angle of attack. It follows from Cl = 2W/(ρSV²) with a lift slope of 2π/(1 + 2/AR), clamped at a 13° stall.

Checked against compute_trim_angle in foil-rl-pump/python-rl/foil_env/foil_physics.py in this repo, which solves the full wing, stabiliser and mast balance: it gives 8.95° at 7.8 mph and 5.44° at 10.1 mph for its own rig (3.5 and 4.5 m/s in the source). This reimplements the wing term only and lands within 2.5%.

On top of trim, the pump swings the flight path by atan(A·ω/V). 80 mm of heave at 2 Hz and 10 mph is ±12.6°, most of which the rider feathers out. What is left is the swing the fuse works through, and the crest of that swing is the design angle.

Two things pull opposite ways across the speed range. Misalignment is worst at the slow end, where lift demand forces a high angle. Absolute drag is largest at the fast end, where dynamic pressure dominates. Shape matters most where misalignment is worst, so the slow end sets the section.

How the drag is estimated

Two independent estimates run side by side, because neither alone deserves much trust.

Headline number. Every parallel cut is built and given a section drag coefficient from flat-plate friction with a Hoerner strut form factor 1 + 2(t/c) + 60(t/c)⁴ on the real wetted perimeter, plus separate blunt leading-edge and blunt base terms. Those integrate across the body. ν = 1.05×10⁻⁶ m²/s, ρ = 1025 kg/m³.

Section solve. The selected cut goes through a constant-strength source panel method, then Thwaites, Michel transition, Head's method and Squire–Young. Separation shows up here.

The weakest part. On a blunt fuse most of the drag comes from the two blunt-end terms, which are hand-set constants. A strip model also treats the flat top and bottom as bluff bases, when a long flat surface at 8° behaves more like a plate at incidence. Direction is solid. Magnitude is an upper bound.

How the proportions are chosen

Minimising drag alone drives the fuse to zero width, so two things are held at least as good as what you have: vertical bending stiffness Iyy = w·h³·I₂/8, which resists the tail's downforce, and cross-sectional area A = w·h·I₀/2 as a weight proxy. I₀ and I₂ are integrals of the outline, so they capture shape as well as size.

The stiffness floor sets the thinnest width at any height, w_min(h) = 8·Iyy*/(h³·I₂), and the area ceiling sets the tallest height. Everything between is valid, so the search walks that range with your outline held fixed. Height is capped at 55 mm for the mast and wing joints. Lateral stiffness is reported but not constrained, and a tall thin blade gives it up quickly.

Add a fuse

The current settings as a config block. Drop it into fuses/ as a .json file and open a pull request, or paste one in to load it.

The bundled shapes are archetypes for exploring geometry, not measured brand geometry. If you have callipers and a real fuse, measured numbers beat my guesses.