| # 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: |
|
|
| 1. **Observes**: Tension from each cable drum |
| 2. **Imagines**: Future states via world model |
| 3. **Decides**: Cable length adjustments via actor |
| 4. **Acts**: Motor commands to drums |
|
|
| ```python |
| # 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: |
|
|
| 1. **HOLD**: Human can inspect/override any decision |
| 2. **Merkle Provenance**: All actions are traced |
| 3. **Distributed Compute**: Multi-sail coordination |
|
|
| ```python |
| # 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](ARACHNE-001_forearm_slingshot.md) - Forearm launcher (throw mechanism) |
| - `src/physics/hubless_dervish.py` - Sail physics |
| - `src/visualization/dervish_viz.py` - Visualization |
| - `src/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 | |
|
|