Project MANTA

A wingsuit-extension rigid wing.

Pilot wears a fitted wingsuit-derivative suit with an integrated CFRP spine yoke. The prone pilot IS the fuselage: a blended center-body fairing closes over the torso and a canopy over the head, and arm-wing membranes web the limbs into the body so the whole thing reads as one worn garment, not a human bolted to a wing. Arm-aligned rigid spars hinge from the spine as the pilot spreads; telescoping tip extensions snap out from the wrists and an ankle-rooted TE spar deploys from the body. The wing's chordwise shape is set by nine bistable rolled-composite ribs per side that unroll from coils at the spar and self-latch onto the airfoil — sprung structure, not telescoping struts. Wingsuit muscle-memory, hang-glider-class glide. Deployable rapidly in flight or on the ground.

This is a real flight vehicle program. Treat it as such.

MANTA deployed — arm-braced wing with telescoping tips
Deployed configuration. Pilot is the central fuselage; arms and the LE spar form the swept leading edge to the wrist; telescoping wrist booms extend to the wingtip; a body-mounted TE spar telescopes spanwise from a hub at the lower back. Nine bistable rolled-composite ribs per side unroll from coils at the LE spar to set the airfoil; the DCF skin tensions bay-by-bay behind them.

Live deployment

Deploy it — then actually fly it.

Drag to orbit. Scrub the slider through the deployment, or hit Play (Phase A: fixed-length limbs rotate out; Phase B: CO₂ telescopes the booms to full span; Phase C: nine bistable ribs per side unroll from their coils root→tip and snap onto the airfoil; Phase D: the skin tensions bay-by-bay behind the unfurl front). Then hit ‘Fly it’ and steer with the keyboard — ← → roll, ↑ ↓ pitch — to actually fly it over procedural terrain under a sky. A real reduced-order flight model runs in your browser: the equations of motion integrate airspeed, bank, load factor and angle-of-attack live, the flaperons deflect and the pilot weight-shifts as you input, the craft banks into turns and glides down toward the hills, and the α-limiter clamps the AoA so you can't stall it. ‘Flow field’ shows the surface pressure + streamlines.

Baked by sim/build.py: a deployment morph plus four control-basis morph targets (roll L/R, pitch up/down) the viewer blends from your live input. Each rib is a real coil→airfoil unroll whose easing is the integrated strain-energy ODE from analysis/deployment/rib_deploy_rom.py — the animation is physics-driven, not an ad-hoc curve. The flight model in control.json uses the resized-planform aero and the documented stability/control derivatives (analysis/flightdynamics/, docs/04) — point-mass EOM with bank-to-turn + short-period AoA + the alpha-limiter. The pilot is a fixed-proportion human inside a double-surface airfoil; the spars run inside the fabric.

MANTA in a banked turn — flaperons deflected, pilot weight-shifted
A banked turn under pilot input: differential flaperon for roll, symmetric flaperon + pilot weight-shift for pitch; the load factor n = L/W and the turn rate g·tanφ/V fall out of the EOM. The pilot's 79%-of-mass body shift is the binding control authority the α-limiter is sized around.
3-DOF longitudinal flight dynamics: freefall, drogue, pull-out, glide capture
Six-state longitudinal sim of the full sequence. The aero model is derived from the locked planform and reproduces every BRIEF target from first principles — terminal velocity 43.9 m/s, deploy pull-out peak 3.1 g (within the 3 g limit-load spar sizing), and a captured best-glide of 17.1 m/s at 13.7 : 1.

Headline numbers

Reproducible, traceable to source.

Wing planform is independent of mounting; the aero analyses still hold. Mass, structural, and packaging numbers updated for the corrected architecture.

Wing area

6.5

Resized down from 8.4 m² — lands under reserve, so a low stall speed isn't required.

Span

6.3 m

Aspect ratio 6.11, taper 0.4, sweep 25°, washout 7° (raised from 6° to recover trim margin).

CL_α (3D, Weissinger)

4.17 /rad

≈ 0.073 /deg. Helmbold cross-checked.

Static margin

5.6 % MAC

Trim study at 7° washout. But the binding CG-based margin is ~2.7% (washout-independent) — tight, FCS-managed. Alpha-limiter + yaw damper now mandatory.

(L/D)ₘₐₓ

11.6

At V ≈ 18 m/s, nominal body CdA = 0.20 m².

Dutch-roll damping ζ

0.17

At V_bg, resized planform (was 0.29). Level 2/3 — the artificial yaw damper is now mandatory, not just recommended.

Deployment time

≈ 0.6 s

Phase A arm spread + Phase B boom telescope + Phase C bistable rib unroll (≈0.69 s/rib, soft 1.96 m/s latch — rib_deploy_rom.py) + Phase D skin tension.

LE spar root OD

67 mm

Bending-sized for the resized wing (3 g limit, SF≥1.5). Smaller than the old 73 mm — shorter span → less root moment.

Wrist tip extension

2.40 m

3-stage telescoping CFRP; CO₂-driven. Shorter boom after the resize.

Rib coil strain ε = t/2R

0.64 %

9 bistable rolled-composite ribs/side, 0.14 mm thin-ply HSC carbon wound to an 11 mm coil — within the ~1% allowable. Strain-energy drive 195 mN; rate-controlled hub prevents blossoming (passive friction holds only 0.13×).

Symmetry 3-σ |Δt|

16.3 ms

vs. BRIEF 10 ms gate — locked architecture FAILS. Active modulation closes it at 8.1 ms.

Pilot 50 mm CG shift

3.6 % MAC

≈ 75% of the static margin on the smaller wing (MAC shrank to 1.095 m). ~3 cm aft and the wing goes neutral — alpha limiter mandatory.

Tests

27 / 27

Across analysis/ and fcs/. make test reproduces locally.

What the analysis surfaced

Four architecture amendments.

The analyses across deliverables #1–#6 plus the architecture rebuild produced four findings the BRIEF should be amended to reflect. Each is backed by runnable code; clicking through goes to the doc that defends it.

Finding #1

V_bg = 16 m/s, not 25 m/s

The locked planform's natural best-glide is ~16 m/s. At V = 25 m/s the wing is below its drag bucket — L/D ≈ 8.3, short of the 10:1 target.

Recommend restating BRIEF V_bg as ~16 m/s.

docs/01 →

Finding #2

Front spar must grow → 73 mm OD

BRIEF dimensions fail bending at 3 g limit by ~3× in stress. Sized at 73 mm OD root / 2.5 mm wall. Adds +1.1 kg/side.

Now relevant to the LE spar root cross-section.

docs/02 →

Finding #3

Active per-side flow modulation

The locked passive-pneumatic-sequencing architecture cannot close the 10 ms 3-σ symmetry gate. Active modulation drops 3-σ from 16.3 ms to 8.1 ms.

Replace passive sequencing with closed-loop sensing.

docs/03 →

Finding #4 — fundamental

Wingsuit-extension, not aircraft-on-back

BRIEF v1 described a separate aircraft strapped on top of a piggyback rig with pyrotechnic spar-root cutters. The actual concept is the pilot wearing a wingsuit-derivative with an arm-braced extending wing — pilot is the fuselage, structure runs along the limbs.

BRIEF v2 (current) reflects this.

BRIEF →

Deliverable #1

Aerodynamics

Pure-Python lifting-line, validated against Helmbold (rectangular AR=8: −3.4 %), feeds trim, glide polar, and the parametric wing OML. Wing planform is independent of how it integrates with the pilot — these numbers carry over from BRIEF v1 unchanged.

Span loading at design CL
Span loading at design CL = 0.5 (α = 7.7°). Sweep + washout pull peak Cl outboard; root Cl is depressed by trailing-wake downwash.
Glide polar L/D vs V
Glide polar across CD0 brackets. (L/D)ₘₐₓ at V ≈ 16 m/s. The BRIEF target V = 25 m/s sits below the drag bucket.
Washout sweep
Trim + washout iteration: SM, x_CG_trim, and tip stall margin vs. washout. Recommend 6° (top of BRIEF range) for 5.4 % SM.

Deliverables #2 + #3

Structures

Bending analysis uses Weissinger output as the loading shape. The cantilever load path in the new architecture is from wingtip → telescoping booms → wrist hub → along-arm LE spar → shoulder yoke → spine. Bending magnitudes carry over; the path is shorter and the moment is reacted by the spine yoke rather than a sub-frame.

Bending stress along span
Bending moment + max-fiber stress along the span at 3 g limit.
Mass budget
Component mass roll-up with the bending-sized spar. Total ≈ 16.6 kg.

Deliverables #4 + #5

Deployment + symmetry budget

The wing's chordwise shape is set by nine bistable rolled-composite ribs per side that unroll from coils at the spar (Phase C) — a strain-energy ROM gives the snap time and soft-latch velocity, and a membrane form-finding model shows the deployment tensions the skin into a smooth controlled surface (0.27% waviness, well inside aero tolerance). The state machine implements every gate and abort path; a 50,000-trial Monte Carlo characterizes the symmetry budget, where the CO₂ contributor busts the 10 ms 3-σ BRIEF gate alone.

Bistable ribs unrolling from coils (x-ray view)
Phase C, membranes ghosted: the nine ribs/side (orange) caught mid-unroll — inboard ribs already snapped onto the airfoil, outboard still curled near the spar. The root→tip unfurl front is the deployment schedule the model animates (sim/build.py: rib_unroll).
Skin membrane form-finding — bay sag and surface waviness
Membrane form-finding (analysis/deployment/membrane_formfinding.py): the deployment pretensions the skin (~2.2 kN/m), so the worst inter-rib sag is ≈1.9 mm even at 3 g — a surface waviness of 0.16–0.27% chord, inside the 0.4% aero tolerance. The deployed wing is a smooth controlled surface, not a billowing canopy; the model now renders this physical sag (≈1.5% of thickness), not an arbitrary bulge.
Rib deployment ROM — deploy fraction and rate vs time
Strain-energy ROM (analysis/deployment/rib_deploy_rom.py): each rib snaps coil→latched airfoil in ≈0.69 s under a constant 195 mN Seffen–Pellegrino propagation force; the damped hub bleeds the stroke to a soft 1.96 m/s latch and prevents blossoming (passive friction holds only 0.13× the drive).
Symmetry budget histogram
Distribution of |Δt_LR| across 50,000 trials. The 10 ms BRIEF gate (black) sits inside the bulk; 3-σ at 16.3 ms (red dashed). Architecture revision required.
Drogue descent
Drogue descent profile (legacy from BRIEF v1). The new architecture deploys from spread-eagle freefall posture so a separate drogue stage isn't strictly required — but the bridle snatch (3.94 kN at 3.83 g) is still the binding harness-mount load case if used.

FCS architecture

Alpha limiter — a structural design assumption.

Per BRIEF, the alpha limiter is treated as an invariant the structure depends on. Pilot CG perturbations alone can eat the static margin; without active envelope protection, a 50 mm posture shift can destabilize the wing. The shoulder/hip rotation against the locked spar gives the pilot a wingsuit-style direct control path that maps to alpha command.

Closed-loop scenario
Closed-loop scenario: pilot demands α = 12° at cruise V = 20 m/s. Limiter saturates the α command at ~9° (α_stall − 2.5° margin) for 83 % of the run; anti-windup holds the inner loop integrator while saturated.

Where each deliverable stands

Program status.

Every BRIEF first-deliverable closed end-to-end with runnable analysis, real CAD, tests where logic exists, and an explicit open-issues section where the analysis stopped.

BRIEF Deliverable Doc Tests Status
#1 Aero sizing docs/01-aero-sizing.md 5 ✓ first-cut
#2 Mass budget docs/02-structural-budget.md 8 ✓ first-cut
#3 Spar bending docs/02-structural-budget.md 8 ✓ first-cut
#4 Deployment sequence docs/03-deployment-sequence.md 7 ✓ first-cut
#5 Symmetry budget analysis/deployment/symmetry-budget.md first-cut — fails 10 ms gate
#6 Ground rig spec test/ground/spec.md spec drafted
+ FCS architecture + alpha limiter docs/04-fcs-architecture.md 7 ✓ first-cut
+ Emergency systems docs/05-emergency-systems.md first-cut
+ Test plan docs/06-test-plan.md first-cut
+ Pilot training transition docs/07-pilot-training.md syllabus drafted
+ Lateral-directional dynamics analysis/flightdynamics/lateral.py first-cut
+ Drogue dynamics analysis/deployment/drogue_dynamics.py first-cut
+ FMEA — 11 / 14 per-mode files safety/fmea.md first-cut
+ Bench characterization plan test/bench/README.md spec drafted

27 / 27 tests passing across analysis/ and fcs/.

Engineering culture

The bar.

This project kills people if done sloppily.

Every analysis is reviewable. Every assumption is cited. Every safety-critical claim has a test that backs it. No vibes-based engineering.

Would this analysis hold up if a coroner's office asked for it?