Airfoil-Cordage Force Direction System
Classification: Aerodynamic Force Vectoring via Tether Control
Status: REFERENCE DOCUMENT
Date: 2026-01-22
1. CORE PRINCIPLE
Cordage (tethers/cables) direct wind forces by controlling airfoil orientation.
The tether is NOT just a passive connectorβit's an active control linkage that:
- Transmits force from airfoil to anchor
- Controls airfoil angle of attack via tension
- Enables collective/cyclic pitch across multiple sails
WIND ββββββββββββββββββββββββββββββββββββββββββββββββΊ
βββββββββββββββββ
β AIRFOIL β
ββββββββ«ββββββββββββββββ«βββββββ
β βββββββββββββββββ β
β β² β
β LIFT β β
β β β
β ββββββββΌβββββββ β
β β Ξ± (pitch) β
β β β
β ββββββββ β
ββββββββββββββββββ¬βββββββββββββ
β
TETHER β (tension)
β
βΌ
βββββββββββββββββ
β ANCHOR β
β (human/spool)β
βββββββββββββββββ
2. AIRFOIL FORCE GENERATION
2.1 Lift Equation
L = Β½ Ο VΒ² S Cβ
Where:
L = Lift force (N)
Ο = Air density (1.225 kg/mΒ³ at sea level)
V = Airspeed (m/s)
S = Wing area (mΒ²)
Cβ = Lift coefficient (function of Ξ±)
2.2 Lift Coefficient vs Angle of Attack
Cβ
β
1.4 β ββββββββ STALL
β β
1.0 β β
β β
0.5 β β
β
0 ββββββββββββββββββββββββββββββββΊ Ξ± (angle of attack)
0Β° 5Β° 10Β° 15Β° 20Β°
β²
β
LINEAR REGION
Cβ = 2Ο sin(Ξ±) β 2ΟΞ±
Source: src/physics/aerodynamics.py β AerodynamicsEngine.compute_lift_coefficient()
2.3 Drag Components
TOTAL DRAG = PARASITIC + INDUCED + STALL
Cd = Cdβ + CβΒ²/(ΟΒ·eΒ·AR) + Cd_stall
β β β
skin drag due separation
friction to lift drag
+ pressure (post-stall)
Source: src/physics/aerodynamics.py β AerodynamicsEngine.compute_drag_coefficient()
3. CORDAGE FORCE TRANSMISSION
3.1 Tether as Force Vector
The tether transmits force along its length. By controlling anchor position and tension, you control the airfoil's resultant force vector.
AIRFOIL
β΅
/β\
/ β \
LIFT βββββΊ β βββββ SIDE FORCE
β
β DRAG
βΌ
β
β TETHER
β (transmits NET force)
β
β
βΌ
ANCHOR
ββββββββββββββββββββββββββββββββββββββββββββ
FORCE RESOLUTION:
β LIFT (L)
β
β ββββΊ NET TETHER FORCE
β / (what anchor feels)
β /
βΞΈ/
β/ ΞΈ = atan(D/L)
βββββββββΊ
DRAG (D)
3.2 Multi-Tether Airfoil Control
A single airfoil with multiple tethers gains attitude control:
βββββββββββββββββββββββββββββββββββββββ
β AIRFOIL β
β βββββββββββββββββββββββββββββββ β
β β WING SURFACE β β
β βββββββββββββββββββββββββββββββ β
β β² β² β² β
β β β β β
β TETHER A TETHER B TETHER Cβ
β β β β β
βββββββΌβββββββββββββββΌβββββββββββββββΌβββ
β β β
β β β
βΌ βΌ βΌ
DRUM A DRUM B DRUM C
ββββββββββββββββββββββββββββββββββββ
SPOOL BODY
PITCH CONTROL:
βββββββββββββββββ
Shorten A, lengthen C β Nose UP
Shorten C, lengthen A β Nose DOWN
ROLL CONTROL:
βββββββββββββββββ
Differential tension β Bank left/right
4. CONSTELLATION GEOMETRY
4.1 Hubless Dervish Topology
Multiple airfoils connected by tethers with no central body.
β΅ NODE 0
β±ββ²
β± β β²
β± β β² β TETHER LINKS
β± β β²
β± β β²
β΅ 5 β β΅ 1
β² β β±
β² β³ β± β VIRTUAL CENTROID
β² β β± (no physical mass)
β² β β±
β² β β±
β² β β±
β²ββ±
β΅ 3
β± β²
β± β²
β± β²
β΅ 4 β΅ 2
The "vehicle" IS the network.
Center of mass is emergent.
Source: src/physics/hubless_dervish.py β Lines 1-20
4.2 Force Balance in Constellation
Each node experiences:
- Aero forces (lift/drag from its airfoil)
- Tether forces (tension from connected nodes)
- Gravity
LIFT β
β
β TETHER
β TENSION β
DRAG ββββββββββββββββΊ
β β
β TETHER
βΌ TENSION
GRAVITY
EQUILIBRIUM CONDITION:
βββββββββββββββββββββββ
Ξ£ F_aero + Ξ£ F_tether + F_gravity = 0
Source: src/physics/hubless_dervish.py β HublessDervish.step()
5. CYCLIC PITCH CONTROL
5.1 Collective vs Cyclic
COLLECTIVE PITCH CYCLIC PITCH
ββββββββββββββββ ββββββββββββββ
All airfoils same Ξ± Ξ± varies with position
β΅ Ξ±=10Β° β΅ Ξ±=15Β°
β± β² β± β²
β± β² β± β²
β΅ β΅ β΅ β΅
Ξ±=10Β° Ξ±=10Β° Ξ±=5Β° Ξ±=10Β°
β² β± β² β±
β² β± β² β±
β΅ Ξ±=10Β° β΅ Ξ±=5Β°
Effect: Uniform lift Effect: NET THRUST
(hover/climb) (directional movement)
5.2 Cyclic Pitch Formula
Ξ±(ΞΈ) = Ξ±_collective + Ξ±_cyclic Β· sin(ΞΈ - Ο_cyclic)
Where:
ΞΈ = Node angular position in constellation
Ο_cyclic = Phase angle (determines thrust direction)
Ξ±_cyclic = Amplitude (determines thrust magnitude)
Source: src/physics/hubless_dervish.py β HublessDervish.get_node_pitch()
def get_node_pitch(self, node: AirfoilNode) -> float:
# Node's angular position relative to centroid
r = node.position - self.centroid
angular_pos = np.arctan2(r[1], r[0]) + self.spin_phase
# Cyclic variation
cyclic = self.cyclic_amplitude * np.sin(angular_pos - self.cyclic_phase)
return self.collective_pitch + cyclic
6. CORDAGE TENSION DYNAMICS
6.1 Spring-Damper Model
NODE A βββββββ[SPRING]βββββββ[DAMPER]βββββββ NODE B
βββββββ stretch βββββββ
βββββββ velocity ββββββ
TENSION = k Β· Ξx + c Β· Ξv
Where:
k = Stiffness (50,000 N/m typical)
Ξx = Stretch beyond rest length
c = Damping coefficient (500 Ns/m)
Ξv = Relative velocity along cable
Source: src/physics/hubless_dervish.py β TetherLink class, compute_tether_forces()
6.2 Tension-Only Constraint
CABLES CAN PULL, NOT PUSH
IF stretch < 0:
tension = 0 (slack cable)
ELSE:
tension = k * stretch + damping
ββββββββββββββββββββββββββββββββββββββββββββββββ
β TAUT β SLACK β
β β β
β ββββββββββββ β β β
β (tension > 0) β β² β
β β β² (catenary sag) β
β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββ
7. AIRFOIL NODE SPECIFICATION
7.1 Physical Properties
| Property | Symbol | Value | Units | Source |
|---|---|---|---|---|
| Mass | m | 2.0 | kg | AirfoilNode.mass |
| Wing area | S | 0.5 | mΒ² | AirfoilNode.wing_area |
| Aspect ratio | AR | 6.0 | - | AirfoilNode.aspect_ratio |
| Pitch authority | - | Β±15Β° | rad | HublessDervish |
| Roll authority | - | Β±30Β° | rad | - |
7.2 Aerodynamic Surface Properties
| Property | Symbol | Value | Units | Source |
|---|---|---|---|---|
| Span | b | 1.5 | m | TABAerodynamics.tab_wing |
| Chord | c | 0.3 | m | TABAerodynamics.tab_wing |
| Lift slope | Cβ_Ξ± | 5.7 | /rad | TABAerodynamics.tab_wing |
| Max Cβ | Cβ_max | 1.4 | - | TABAerodynamics.tab_wing |
| Zero-lift drag | Cdβ | 0.04 | - | TABAerodynamics.tab_wing |
| Stall angle | Ξ±_stall | 15Β° | deg | AerodynamicsEngine |
Source: src/physics/aerodynamics.py β AeroSurface, TABAerodynamics
8. FLIGHT REGIME CLASSIFICATION
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ATTACHED STALL DEEP POST β
β FLOW ONSET STALL STALL β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ β
β 0Β° 15Β° 18Β° 45Β° 90Β° β
β β
β Cβ linear Cβ drops Cβ β 2sin(Ξ±)cos(Ξ±) β
β Cd low Cd rises Cd massive β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Source: src/physics/aerodynamics.py β FlightRegime enum
9. CROSS-SYSTEM INTEGRATION
9.1 MARIONETTE Sail Control
The MARIONETTE spool uses drum-based cordage to control sail pitch:
SPOOL DRUM βββββcableβββββ SAIL AIRFOIL
REEL IN = Increase Ξ± = More lift
PAY OUT = Decrease Ξ± = Less lift
Champion brain reads tension β decides cable lengths
Cross-reference: MARIONETTE-001
9.2 ARACHNE Launch Integration
The ARACHNE launcher provides initial velocity to deploy the constellation:
FOREARM ββelasticβββ SPOOL ββthrowβββ CONSTELLATION
β
βΌ
CENTRIFUGAL
DEPLOYMENT
β
βΌ
CYCLIC PITCH
CONTROL
Cross-reference: ARACHNE-001
10. OPERATIONAL SECTORS
Each TAB operates in a designated wedge-shaped sector:
UP (+Z)
β
β 90Β°
135Β° β² β β± 45Β°
β² β β±
β² β β±
LEFT β² β β± RIGHT
(-Y) βββββββββββ²ββΌββ±ββββββββββ (+Y)
180Β° β²ββ± 0Β°
β±ββ²
β± β β²
β± β β²
-135Β°β± β β²-45Β°
β
β -90Β°
DOWN (-Z)
SECTOR BOUNDARIES:
βββββββββββββββββ
UP: 45Β° to 135Β°
DOWN: -45Β° to -135Β°
LEFT: 135Β° to 225Β° (or -135Β° to -180Β°, 180Β° to 135Β°)
RIGHT: -45Β° to 45Β°
Source: src/physics/cable_geometry.py β Lines 1-45, OperationalSector
11. SOURCE FILE INDEX
| File | Purpose | Key Classes/Functions |
|---|---|---|
src/physics/aerodynamics.py |
Lift/drag/side-force | AerodynamicsEngine, AeroSurface |
src/physics/hubless_dervish.py |
Constellation physics | HublessDervish, AirfoilNode, TetherLink |
src/physics/cable_geometry.py |
Cable intersection | CableGeometry, OperationalSector |
src/physics/marionette_spool.py |
Sail spool control | MarionetteSpool, CableDrum |
src/physics/tether_dynamics.py |
Tether physics | (referenced) |
src/physics/slingshot_dynamics.py |
Launcher physics | (referenced) |
12. KEY EQUATIONS SUMMARY
Aerodynamics
Lift: L = Β½ΟVΒ²SCβ
Drag: D = Β½ΟVΒ²SCd
Cβ: Cβ = 2ΟΒ·sin(Ξ±) Β· Ξ· (thin airfoil, Ξ· = efficiency)
Cd: Cd = Cdβ + CβΒ²/(ΟΒ·eΒ·AR)
Tether Mechanics
Tension: T = kΒ·Ξx + cΒ·Ξv (spring-damper)
Force: Fβ = TΒ·nΜ (along cable direction)
Constellation Control
Pitch: Ξ±(ΞΈ) = Ξ±_coll + Ξ±_cycΒ·sin(ΞΈ - Ο)
Thrust: Fβ_thrust = Ξ£ L_asymmetric
Centroid: rβ_c = Ξ£(m_iΒ·rβ_i) / Ξ£m_i
Document generated from source code analysis. All equations and parameters traced to implementation.