← PropShaper

Methods

Last updated: 23 September 2026

Every number PropShaper shows is produced by a method described here, with its assumptions and its validation. Claims stay inside what the method supports.

Blade geometry

The blade is defined by five spanwise distributions — chord, twist, thickness, skew, rake — held as clamped interpolating B-spline curves. One evaluator is the single source of truth: the 3D mesh, the stations table, the performance solver and the strength check all sample the same function, so a saved design reconstructs to exactly one propeller.

Sections are drawn in the developed plane of each station's radius cylinder and wrapped back onto it (marine drawing-office construction), not lofted flat. Sections are NACA 4-digit derived by default, with real airfoil contours from the foil.tools catalog assignable at root and tip. The root blend flares only the thickness term of the section into the hub wall, so the junction is eased while the trailing edge stays mathematically sharp. Booleans (hub bore, screw patterns, counterbores, drive pins) are computed with the Manifold library (exact, watertight solids), checked by a regression suite of 140+ geometry checks (validate-geometry) plus an external slicer manifold check on exported STL.

Performance — blade-element momentum (BEMT)

Thrust and power come from a blade-element momentum solver run over the actual lofted geometry. Per annulus, blade-element loads and momentum fluxes are matched by an under-relaxed fixed-point iteration on the induced axial and swirl velocities, with the Prandtl factor for tip and hub loss. The section model is a thin-airfoil lift line with camber-set zero-lift angle, stall-limited, and a Reynolds-dependent profile drag polar, so efficiency never diverges at low loading. It is robust at static thrust (V = 0) and runs through the full advance range, in air and in water.

Validation: the solver is measured against published UIUC wind-tunnel data for three reference propellers in the library (APC SF 9×4.7, APC TE 9×6, GWS SF 10×4.7). Current worst-case errors are about 3% on static thrust coefficient, 10% on dynamic thrust coefficient and 12% on static power coefficient. A regression script (validate-aero) fails if any error exceeds ±15% on thrust or ±20% on power. The polar calibration constants are locked, so a future discrepancy has to be fixed as a physics bug, not tuned away.

Limits: it is a model, not a measurement. Blades are rigid, flow is incompressible (watch the tip-Mach readout), and cavitation is not simulated — it is screened (below). Non-converged operating points are flagged in the UI.

Toroidal (closed-loop) blades

In toroidal mode each blade is a single continuous loft: a leading leg, a tip arch, and a trailing leg returning to the hub. On the legs the sections follow the standard construction (chord along the local helix); through the arch the section frame rotates with the loop's center path, so the arch stands like a ring-wing segment, and camber fades to a symmetric section at the arch and mirrors on the return leg so both legs thrust the same direction. The loop's root separation is clamped so a loop can never self-intersect, and the arch center is solved so the finished blade hits the stated diameter exactly. Performance limits: BEMT treats a loop as two independent straight legs (doubled lifting-line count); the arch's tip-vortex interaction — the form's claimed noise and efficiency benefit — is not modeled, so toroidal thrust/power numbers are first-order only.

Optimizer — minimum induced loss design

The Optimize tab designs a blade rather than analyzing one: given cruise speed, rpm, diameter and a thrust target, it solves the Adkins–Liebeck formulation of the Betz condition (constant displacement velocity across the wake — the method behind QMIL/QPROP) for the chord and twist distributions of the minimum-induced-loss propeller, using the same locked polar as the analyzer. The result is written into the sculpted genome curves, then every requested speed is re-analyzed with the BEMT solver — design and verification agree on thrust to within about one percent by construction, which is a self-consistency check, not independent evidence. Motor current and voltage come from the ideal kV relation (Kt = 60/2πkV); winding resistance and no-load current are not included, so electrical numbers are optimistic bounds. The design point must be a real advance speed — hover is checked afterwards by analysis, not designed for.

Ducted (shrouded) rotors

The duct is generated as a separate watertight revolve — bellmouth inlet, cylindrical throat at the stated tip clearance, conical diffuser to the chosen exit/disk area ratio — and exported as its own STL. In analysis the shroud enters the momentum balance: the exit area is fixed by the duct (Ve = (V+vi)/σ), the rotor balances the disk pressure jump, the Prandtl tip-loss factor is dropped (the shroud seals the tip gap), and total system thrust is rotor plus shroud minus a flat-plate skin-friction estimate on the duct's wetted area. This reproduces the classic shrouded-rotor results (a σ=1 duct carries about half the static thrust) but is first-order: duct lip separation, real diffuser efficiency, and tip-gap leakage are not modeled.

STEP export — native B-rep

The STEP export is not a converted mesh: the blade is lofted through the same section rings the triangle mesh uses, as closed three-edge wires (upper spline, lower spline, sharp-TE segment) with end caps built on the identical boundary wires, so nothing is sewn to a tolerance. The hub is a true revolve; bore, screw holes, counterbores and drive pins are boolean cuts of analytic cylinders. A regression script (validate-cad) builds representative props headlessly through OpenCascade and requires a closed, BRepCheck-valid single solid whose volume matches the mesh within 2%, and the shipped default has been round-tripped through an independent CAD kernel. Print-only chamfer lead-ins are deliberately left out of the STEP.

Measured section polars (foil.tools)

The built-in analytic polar is the default and is the one the UIUC validation covers. When a foil.tools section is assigned, the Analysis tab can instead run that airfoil's published polar table: CL and CD are interpolated linearly in angle of attack within each Reynolds slice and log-linearly between slices, with the nearest slice held outside the tabulated range. Tables are lightly smoothed (a 1-4-1 filter on interior points, endpoints and stall levels preserved) because low-Reynolds data carries a genuine discontinuity where the laminar separation bubble bursts at stall onset — a kinked lift curve has no stable fixed point for the momentum iteration. Blade stations that still land in that bistable band settle into a small limit cycle; those are reported as the cycle's mean and the operating point is flagged non-converged rather than presented as a clean solution. Measured-polar runs are NOT covered by the UIUC validation above, and the panel says so.

Cavitation screening (water)

The cavitation number σ is evaluated at the 0.7R marine reference station: σ = (patm + ρgh − pv) / (½ρV²), with h the immersion depth (0.35 m default) and V the section resultant speed. Required blade area uses the Keller criterion, AE/A0 ≥ (1.3 + 0.3Z)·T / ((p0 − pv)D²) + k with k = 0.1 (Auf'm Keller 1966, as given in Carlton, Marine Propellers and Propulsion). This is a blade-area sufficiency screen, not a sheet-cavitation prediction; σ is reported neutrally alongside it.

Root strength

The static flapwise bending moment at the blade root is integrated from the BEMT thrust distribution. The section modulus is computed exactly from the actual root section polygon (shoelace area, centroid and second moment — no handbook shape factors), and the resulting bending stress is compared against typical datasheet strengths for the selected material under a user-chosen safety factor. Not covered: fatigue, impact, and interlayer adhesion of FDM prints (prints are weakest across layers) — that is what the safety factor is for, and the UI says so.

Reference conditions and units

Air-side numbers are quoted at ISA sea level: 15 °C, 101.325 kPa, ρ = 1.225 kg/m³. Water-side numbers use fresh water at 15 °C, ρ = 999.1 kg/m³, with vapor pressure 1.706 kPa. Mass estimates are mesh volume times datasheet material density. Reynolds numbers are chord-based at 0.75R.

Provenance of starting points

Library entries state where their geometry comes from: UIUC-measured propellers carry wind-tunnel-campaign geometry, Wageningen B-series entries are generated from the published polynomials, and hub presets are dimensioned from manufacturer specifications or independently measured hardware — fit-critical dimensions are cited in each preset's notes, and anything unverified is labeled unverified.