MARIONETTE-001: Sail Drone Spool System
Classification: Tethered Multi-Sail Propulsion
Status: IMPLEMENTED v1.0
Date: 2026-01-22
Source: src/physics/marionette_spool.py
1. CONCEPT OVERVIEW
The MARIONETTE SPOOL is a tethered sail constellation where:
- Multiple sails on cables orbit a central spool
- The spool is thrown by human, then takes over autonomously
- A Champion brain (DreamerV3) controls sail pitch via cable lengths
- Uses cascade-lattice as computational substrate
COLLAPSED (pre-throw) DEPLOYED (marionette mode)
βββββββββ SAILS
βββββββββ β΅ β΅
ββββββββββββ All cables \ /
βββββββββ wound tight \ /
βSPOOL β βββββ΄ββββ
βββββββββ β SPOOL ββββ Champion brain
β βCONTROLβ runs HERE
βΌ βββββ¬ββββ
Human β
hand individual
cable control
2. OPERATIONAL PHASES
Phase 1: WOUND
All cables coiled on spool drums.
Sails stacked/collapsed against spool body.
Human holds spool in hand.
Phase 2: THROW
Human throws spool with spin.
Velocity: 15-25 m/s
Spin: 10-30 rad/s
Phase 3: UNRAVELING
Centrifugal force pays out cables.
Sails deploy radially.
Spin rate increases (conservation of angular momentum).
Phase 4: TENSIONED
Cables at max extension.
Sails spread in constellation.
System is aerodynamically active.
Phase 5: MARIONETTE CONTROL
Champion brain reads tension from each drum.
Computes optimal cable length adjustments.
Controls sail pitch for:
- Wind tacking (staying aloft)
- Trajectory control
- Formation maneuvers
3. SPOOL ARCHITECTURE
3.1 Physical Components
βββββββββββββββββββββββββββββββββββββββββββ
β SPOOL BODY β
β βββββββ βββββββ βββββββ βββββββ β
β βDRUM β βDRUM β βDRUM β βDRUM β β
β β 0 β β 1 β β 2 β β N β β
β β βββ β β βββ β β βββ β β βββ β β
β ββββ¬βββ ββββ¬βββ ββββ¬βββ ββββ¬βββ β
β β β β β β
β ββββ§βββββββββ§βββββββββ§βββββββββ§βββ β
β β CHAMPION BRAIN (RSSM) β β
β β βββββββββββββββββββββββββββββ β β
β β β Tension β State β Actions β β β
β β βββββββββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
CABLE CABLE CABLE CABLE
β β β β
βΌ βΌ βΌ βΌ
SAIL SAIL SAIL SAIL
β΅ β΅ β΅ β΅
3.2 Cable Drum Specs
| Property | Value | Notes |
|---|---|---|
| Drum radius | 30mm | Per-sail drum |
| Cable length | 15m | Total wound |
| Max deployment | 12m | 80% of total |
| Cable diameter | 2mm | Dyneema/Spectra |
| Tension sensor | Strain gauge | Per-drum |
| Brake | Magnetic | Variable engagement |
3.3 Champion Brain
The spool contains a trained DreamerV3 RSSM that:
- Observes: Tension from each cable drum
- Imagines: Future states via world model
- Decides: Cable length adjustments via actor
- Acts: Motor commands to drums
# Observation space (per drum)
tension: float # N - current tension
tension_rate: float # N/s - rate of change
deployed_length: float # m - cable extension
# Action space (per drum)
length_adjust: float # m - reel in (+) / pay out (-)
brake_engage: float # 0-1 brake force
4. SAIL CONFIGURATION
Default: 6-Sail Ring
β΅ Sail 0 (0Β°)
/
/
β΅ 5 / \ β΅ 1 (60Β°)
(300Β°) \
\ /
\ /
β΅ 4 β³ β΅ 2 (120Β°)
(240Β°) β
β
β΅ 3 (180Β°)
| Sail | Angle | Specialty |
|---|---|---|
| 0 | 0Β° | Upwind tack |
| 1 | 60Β° | Beam reach |
| 2 | 120Β° | Broad reach |
| 3 | 180Β° | Downwind |
| 4 | 240Β° | Broad reach |
| 5 | 300Β° | Beam reach |
5. CONTROL MODES
5.1 Collective
All cables adjust together:
- Reel in: System descends, spin increases
- Pay out: System ascends, spin decreases
5.2 Cyclic
Sinusoidal variation around the ring:
- Creates tacking motion
- Allows trajectory control
- Amplitude + phase controlled by champion
5.3 External Command ("Yondu Whistle")
Human can provide high-level direction:
- Pitch/heading commands
- Override vector
- Recall signal
6. CASCADE-LATTICE INTEGRATION
The spool uses cascade-lattice for:
- HOLD: Human can inspect/override any decision
- Merkle Provenance: All actions are traced
- Distributed Compute: Multi-sail coordination
# From marionette_spool.py
cascade.register_component(self.spool_id, self)
7. PERFORMANCE ESTIMATES
| Parameter | Value | Notes |
|---|---|---|
| Launch velocity | 15-25 m/s | Human throw |
| Initial spin | 10-30 rad/s | Wrist flick |
| Deployment time | 2-3 s | Cables fully extend |
| Loiter time | Minutes | Wind dependent |
| Max range | 50-100m | Before recall |
| Control bandwidth | 10 Hz | Champion inference |
8. CROSS-REFERENCES
- ARACHNE-001 - Forearm launcher (throw mechanism)
src/physics/hubless_dervish.py- Sail physicssrc/visualization/dervish_viz.py- Visualizationsrc/ai/collective_intelligence.py- Multi-agent coordination
9. INTEGRATION: ARACHNE + MARIONETTE
The ARACHNE forearm launcher can serve as the throw mechanism:
FOREARM RUNWAY ββββββββββββββββββββββββββΊ SAIL CONSTELLATION
[ELBOW] β΅
β β΅ β² β± β΅
βββelasticββ[WRIST]ββSPOOLββββββthrowβββββββΊ β²ββ±
β [SPOOL]
[THUMB] β
β CHAMPION
release CONTROL
Advantages:
- Higher launch velocity (elastic assist)
- Consistent spin imparted
- Human hand free after launch
- Forearm becomes recall anchor
10. REVISION HISTORY
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-01-22 | Initial documentation from source |