# RICOCHET-001: Bouncy Ball Bola Deployment System **Classification:** Impact-Triggered Sail Unfurling **Status:** DRAFT v0.1 **Date:** 2026-01-24 **Codename:** "SUPERBALL MARIONETTE" --- ## 1. CONCEPT OVERVIEW **Throw a big rubber ball at the ground. It bounces. It ERUPTS into a sailing marionette.** The bounce isn't wasted energy - it's the LAUNCH MECHANISM. ``` PHASE 1: THROW PHASE 2: IMPACT PHASE 3: ERUPTION ════════════════ ═══════════════ ═════════════════ ○ ○ ⛵ ⛵ /|\ ← Human throws ╱│╲ ← Ball compresses \ / │ downward ▄███▄ stores elastic \_/ / \ ═══════ energy ┌──┴──┐ │CORE │ ◉ ←─ Compressed ◉▄▄▄▄◉ ← Deformation ═══╧═══ │ marionette ═══════ triggers latch │ │ │ ⛵─┼─⛵ ▼ │ │ ───────────────── ───────────────── ───────────────── GROUND GROUND GROUND ↑ BOUNCE lifts entire system! PHASE 4: FLIGHT PHASE 5: MARIONETTE MODE ═══════════════ ════════════════════════ ⛵ ⛵ ⛵ ⛵ \ / \ / \ / ← Sails catch air \ / ┌──┴──┐ \ / │BRAIN│ ← Champion awakens ┌───┴───┐ └──┬──┘ │CONTROL│ │ └───┬───┘ ⛵ ⛵ │ ⛵──┼──⛵ ~~~~ WIND ~~~~ AUTONOMOUS FLIGHT ``` --- ## 2. THE SUPERBALL SHELL ### 2.1 Material: High-Restitution Rubber The outer shell is made of **polybutadiene rubber** (same as actual Super Balls): - Coefficient of Restitution: **0.85 - 0.92** (bounces to ~80% of drop height!) - Stores massive elastic energy on impact - Survives repeated ground strikes ``` SUPERBALL CROSS-SECTION ═══════════════════════ ┌─────────────────────────────────────┐ │ OUTER RUBBER SHELL │ │ (polybutadiene, 8mm thick) │ │ ┌─────────────────────────────┐ │ │ │ COMPRESSION CHAMBER │ │ │ │ ┌───────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════════╗ │ │ │ │ │ │ ║ SPOOL CORE ║ │ │ │ │ │ │ ║ ┌─────────┐ ║ │ │ │ │ │ │ ║ │ SAILS │ ║ │ │ │ │ │ │ ║ │ (wound) │ ║ │ │ │ │ │ │ ║ │ ◎◎◎◎◎◎◎ │ ║ │ │ │ │ │ │ ║ └─────────┘ ║ │ │ │ │ │ │ ║ CHAMPION ║ │ │ │ │ │ │ ║ BRAIN ║ │ │ │ │ │ │ ╚═══════════════╝ │ │ │ │ │ │ │ │ │ │ │ └───────────────────────┘ │ │ │ │ LATCH RING ●────● │ │ │ └─────────────────────────────┘ │ │ │ └─────────────────────────────────────┘ ◉ = 15-25 cm diameter ``` ### 2.2 Ball Specifications | Property | Value | Notes | |----------|-------|-------| | Diameter | 15-25 cm | Softball to volleyball size | | Shell Thickness | 6-10 mm | Balances bounce vs payload | | Total Mass | 0.8-2.0 kg | Throwable by human | | Restitution Coefficient | 0.85+ | HIGH bounce required | | Impact Survival | 50+ m/s | Handles hard throws | --- ## 3. THE ERUPTION MECHANISM ### 3.1 G-Force Triggered Latch The shell contains a **compression-activated latch** that releases at a specific G-force threshold. ``` LATCH MECHANISM (Cross-section view) ═════════════════════════════════════ ARMED STATE TRIGGERED STATE ════════════ ═══════════════ ┌────────────────┐ ┌────────────────┐ │ SHELL WALL │ │ SHELL WALL │ │ ┌────────────┐ │ │ ┌────────────┐ │ │ │ ┌──────┐ │ │ │ │ │ │ │ │ │LATCH │ │ │ ══► IMPACT ══► │ │ LATCH │ │ │ │ │ PIN │ │ │ │ │ SHEARED │ │ │ │ └──┬───┘ │ │ │ │ ↓ │ │ │ │ │ │ │ │ │ ═════ │ │ │ │ ▼▼▼▼▼▼▼ │ │ │ │ ▲▲▲▲▲ │ │ │ │ SPRING │ │ │ │ RELEASED! │ │ │ │ LOADED │ │ │ │ │ │ │ └────────────┘ │ │ └────────────┘ │ └────────────────┘ └────────────────┘ G-FORCE THRESHOLD: ══════════════════ G-force ↑ 150G │ ████ ← TRIGGER ZONE 100G │ █████████ (100-200G) 50G │ │ 0G ├────┼────────────► time │ │ IMPACT MOMENT ``` ### 3.2 Shell Separation On trigger, the shell **splits along pre-scored seams** like a blooming flower: ``` SHELL BLOOM SEQUENCE ════════════════════ T = 0ms T = 5ms T = 20ms T = 50ms (Impact) (Latch releases) (Petals open) (Full bloom) ◉ ◉ ╱│╲ \ / │ /│\ / │ \ \_/ │ / │ \ / │ \ │ ═══════ ═══════════ ════════════ ═══════════ ↑ SAILS BEGIN TO DEPLOY TOP VIEW OF PETAL SEPARATION: ═════════════════════════════ ┌───┐ ╱ ╲ ╲ ╱ ╱ ╲ │ │ ╲ ╱ │ ◉ │ ═══► │ ◉ │ ═══► ╲ ╱ ╲ ╱ │ │ ◉ └───┘ ╲ ╱ ╱ ╲ ╱ ╲ CLOSED CRACKING DETACHED (petals fly off) ``` --- ## 4. BOUNCE ENERGY HARVESTING ### 4.1 The Bounce = Free Launch Velocity When the ball hits the ground, it compresses and rebounds. We HARVEST this: ``` ENERGY FLOW DIAGRAM ═══════════════════ THROW ENERGY ──────────────────────────────────────────────► │ │ │ ┌──────────────────────────────────────────────┐ │ │ │ │ │ ▼ ▼ ▼ │ ╔═══════════╗ ╔═══════════════╗ ╔═══════════════╗ │ ║ KINETIC ║ ──► ║ ELASTIC ║ ──► ║ KINETIC ║ │ ║ (down) ║ ║ (compressed) ║ ║ (UP!) ║ │ ╚═══════════╝ ╚═══════════════╝ ╚═══════════════╝ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ │ ┌─────────────┐ ┌──────────────────┐ │ │ LATCH TRIPS │ │ SAILS DEPLOY │ │ │ (uses tiny │ │ (catch upward │ │ │ fraction) │ │ momentum!) │ │ └─────────────┘ └──────────────────┘ │ └──────► ~15% lost to ground/heat VELOCITY DIAGRAM: ═════════════════ V (m/s) ↑ +15 │ ●●●●●●●●●●●● ← SAILS DEPLOYED │ ● ↖ (catching wind) +10 │ ● │ ● ← UPWARD BOUNCE +5 │ ● │ ● 0 ├───────────────●─────────────────► time │ ●│ -5 │ ● │ │ ● │ -10 │ ● │ │ ● │ -15 │ ● │ ← DOWNWARD (thrown) │ ● │ -20 │ ● │ ▲ IMPACT (latch triggers) ``` ### 4.2 Timing is Everything The shell must separate DURING the bounce, not before or after: ``` CRITICAL TIMING WINDOW ══════════════════════ ─────────────────────────────────────────────────────────────► time │◄──── APPROACH ────►│◄─ CONTACT ─►│◄──── REBOUND ────►│ │ │ │ │ │ Ball falling │ Compression │ Ball rising │ │ Shell intact │ Latch trips │ Shell blooming │ │ │ │ Sails unfurling │ │ │ │ │ │ ◉ │ ▄◉▄ │ ⛵ ⛵ │ │ │ │ ═════ │ \│/ │ │ ▼ │ │ ◉ │ │ │ │ ↑ │ │ │ │ │ ──────────────────────────────────────────────────────────── FAILURE MODES: ══════════════ TOO EARLY (pre-impact): TOO LATE (post-apex): ⛵ ⛵ ⛵ ⛵ \│/ \│/ ◉ ← Sails deploy ◉ ← Sails deployed │ while falling! │ but falling again! ▼ (no upward momentum) ▼ (missed the bounce) ═══════ ═══════ BAD! BAD! ``` --- ## 5. SAIL DEPLOYMENT SEQUENCE ### 5.1 Coiled Configuration (Pre-Deploy) Inside the ball, sails are wound tightly around the spool core: ``` INTERNAL COIL STRUCTURE ═══════════════════════ TOP VIEW (looking down into ball): ╔═══════════════════════════╗ ║ ║ ║ ┌─────────────────┐ ║ ║ │ ◎◎◎◎◎◎◎◎◎◎◎◎ │ ║ ║ │ ◎ ┌───────┐ ◎ │ ║ ║ │ ◎ │ SPOOL │ ◎ │ ║ ║ │ ◎ │ CORE │ ◎ │ ║ ║ │ ◎ │ │ ◎ │ ║ ← 4 sails wound ║ │ ◎ │ BRAIN │ ◎ │ ║ as tight spirals ║ │ ◎ └───────┘ ◎ │ ║ ║ │ ◎◎◎◎◎◎◎◎◎◎◎◎ │ ║ ║ └─────────────────┘ ║ ║ ║ ╚═══════════════════════════╝ RUBBER SHELL SIDE VIEW (cross-section): ┌─────────────────────────────┐ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ ← Rubber │░┌───────────────────────┐░░░│ │░│ ════════════════════ │░░░│ ← Sail 0 (coiled) │░│ ════════════════════ │░░░│ ← Sail 1 (coiled) │░│ ╔═══════════════╗ │░░░│ │░│ ║ SPOOL DRUMS ║ │░░░│ │░│ ║ ┌──┐┌──┐ ║ │░░░│ │░│ ║ │◎ ││◎ │ ║ │░░░│ ← Individual drums │░│ ║ └──┘└──┘ ║ │░░░│ per sail cable │░│ ╚═══════════════╝ │░░░│ │░│ ════════════════════ │░░░│ ← Sail 2 (coiled) │░│ ════════════════════ │░░░│ ← Sail 3 (coiled) │░└───────────────────────┘░░░│ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ └─────────────────────────────┘ ``` ### 5.2 Centrifugal Unfurling As the shell petals separate, they carry sail tips outward. Then **spin + upward motion** unfurls: ``` UNFURL SEQUENCE (Top view, time series) ════════════════════════════════════════ T=0ms T=30ms T=100ms T=200ms Shell splits Petals eject Cables pay out Full extension ╱ ╲ \ / ⛵ ⛵ ⛵ ⛵ │ ◎ │ \ / \ / \ / ╲ ╱ ◎ \ / \ / │ ┌──┴──┐ \ / ╱ ╲ │CORE │ ┌───┴───┐ └──┬──┘ │ SPOOL │ │ └───┬───┘ ⛵ ⛵ │ ⛵──┼──⛵ CABLE PAYOUT MECHANISM: ═══════════════════════ Each sail is on a DRUM that pays out cable as centrifugal force pulls: ┌────────────────────────────────────────────┐ │ │ │ DRUM (wound) DRUM (paying out) │ │ │ │ ┌──────┐ ┌──────┐ │ │ │◎◎◎◎◎◎│ │◎◎◎ │───────► │ ← Cable │ │◎◎◎◎◎◎│ ═══► │◎◎ │ │ unreeling │ │◎◎◎◎◎◎│ │◎ │ │ │ └──────┘ └──────┘ │ │ │ │ INITIAL MID-DEPLOY │ │ (all cable wound) (cable out) │ │ │ └────────────────────────────────────────────┘ Centrifugal force at R = 1m, ω = 3 rad/s: F_cent = m * ω² * R = 0.2 kg * (3)² * 1 = 1.8 N per sail This pulls cables out smoothly! ``` --- ## 6. PHYSICS MODEL ### 6.1 Impact Dynamics ```python # Ground impact model def compute_bounce(v_impact, restitution=0.87, mass=1.5): """ Calculate bounce velocity from impact. Args: v_impact: Impact velocity (m/s, positive = downward) restitution: Coefficient of restitution (0.87 for superball rubber) mass: Ball mass (kg) Returns: v_rebound: Rebound velocity (m/s, positive = upward) g_force: Peak G-force during impact contact_time: Ground contact duration (s) """ # Rebound velocity (energy preserved * restitution) v_rebound = v_impact * restitution # Contact time (Hertzian contact approximation) # For rubber ball ~10-20ms contact_time = 0.015 # 15ms typical # Peak deceleration delta_v = v_impact + v_rebound # Total velocity change a_peak = delta_v / contact_time g_force = a_peak / 9.81 return v_rebound, g_force, contact_time # Example: 20 m/s throw (hard overhand) v_rebound, g_force, t_contact = compute_bounce(20.0) # v_rebound ≈ 17.4 m/s (upward!) # g_force ≈ 255 G (definitely triggers latch!) # t_contact ≈ 15 ms ``` ### 6.2 Trigger Threshold ```python # G-force latch parameters TRIGGER_G_MIN = 80 # Minimum G to trigger (prevents accidental) TRIGGER_G_MAX = 500 # Max survivable G for electronics # For various throw speeds: # 10 m/s (gentle toss): ~127 G ← TRIGGERS # 15 m/s (medium throw): ~191 G ← TRIGGERS # 20 m/s (hard throw): ~255 G ← TRIGGERS # 25 m/s (very hard): ~319 G ← TRIGGERS # 5 m/s (drop): ~64 G ← NO TRIGGER (too soft) ``` ### 6.3 Sail Deployment Dynamics ```python def sail_unfurl_physics( bounce_velocity: float, # m/s upward spin_rate: float, # rad/s (imparted by throw) num_sails: int = 4, sail_mass: float = 0.15, # kg per sail cable_length: float = 2.0, # m max extension ): """ Model sail deployment during upward bounce. """ # Centrifugal acceleration pulls sails outward # a_cent = ω² * r # Time to full extension (approximate) # Using F = ma, where F = centrifugal # Simplified: t ≈ sqrt(2 * cable_length / a_cent) # At spin_rate = 3 rad/s, r = 1m: # a_cent = 9 m/s² # t_deploy ≈ sqrt(2 * 2.0 / 9) ≈ 0.67 seconds # During this time, ball rises: # h = v * t - 0.5 * g * t² # h = 17 * 0.67 - 0.5 * 9.81 * 0.67² # h ≈ 9.2 m (above bounce point!) return { 'deploy_time': 0.67, 'deploy_altitude': 9.2, 'final_sail_velocity': spin_rate * cable_length, # tangential } ``` --- ## 7. CHAMPION BRAIN ACTIVATION ### 7.1 Boot Sequence The Champion brain (DreamerV3) activates on impact detection: ``` BRAIN ACTIVATION TIMELINE ═════════════════════════ ──────────────────────────────────────────────────────────────────► time │ DORMANT │ IMPACT │ BOOT │ CALIBRATE │ SAIL CONTROL │ MARIONETTE │ │ │ │ │ │ │ MODE │ │ │ │ │ │ │ │ │ zzz... │ !!! │ ████ │ ◎ ◎ ◎ ◎ │ ~~~~ ⛵ │ FLYING │ │ │ │ │ │ │ │ ├─────────┼────────┼──────┼───────────┼──────────────┼────────────┤ -∞ T=0 50ms 100ms 300ms 500ms+ BOOT SEQUENCE DETAIL: ═════════════════════ T+0ms: Accelerometer detects >80G → WAKE signal T+10ms: IMU initialization T+20ms: Tension sensors online (all drums) T+30ms: RSSM state estimator starts T+50ms: First control output (brake drums to prevent overshoot) T+100ms: Sail positions estimated from cable tensions T+200ms: Aerodynamic model engaged T+300ms: Full marionette control active T+500ms: Champion brain has authority ``` ### 7.2 Mid-Air Orientation Recovery After chaotic bounce + deploy, the system must stabilize: ``` STABILIZATION CHALLENGE ═══════════════════════ POST-BOUNCE (Chaotic): TARGET (Stable): ⛵ ⛵ ⛵ / \ / / ⛵ \ / │ / ┌──┴──┐ ◎──/ ← Tumbling, │CORE │ ← Level, \ tangled? └──┬──┘ symmetric \ │ ⛵ ⛵──┼──⛵ Champion uses: 1. Differential cable tension → torque for rotation 2. Sail pitch modulation → aerodynamic moments 3. Collective pitch → altitude control ``` --- ## 8. OPERATIONAL ENVELOPE ### 8.1 Throw Parameters | Parameter | Min | Optimal | Max | Notes | |-----------|-----|---------|-----|-------| | Throw Speed | 8 m/s | 15-20 m/s | 30 m/s | Harder = higher bounce | | Throw Angle | -90° (straight down) | -60° to -45° | 0° (horizontal) | Steep = clean bounce | | Spin Imparted | 0 rad/s | 2-4 rad/s | 10 rad/s | Spin aids deployment | | Release Height | 1.0 m | 1.5-2.0 m | 3.0 m | Higher = more time | ### 8.2 Environmental Requirements ``` SURFACE REQUIREMENTS: ═════════════════════ ✓ GOOD SURFACES ✗ BAD SURFACES ────────────── ───────────── • Concrete • Sand (absorbs energy) • Asphalt • Grass (unpredictable) • Hard-packed dirt • Water (no bounce lol) • Gym floor • Mud • Metal deck • Foam/carpet WIND CONDITIONS: ════════════════ Optimal: 3-8 m/s (light breeze) - Enough wind for sail control - Not so much it tumbles the ball pre-impact Maximum: 15 m/s - Beyond this, deploy timing unreliable ``` --- ## 9. INTEGRATION WITH MARIONETTE SPOOL This system IS the marionette spool, just with a bouncy ball deployment shell: ``` SYSTEM EQUIVALENCE ══════════════════ STANDARD MARIONETTE RICOCHET DEPLOYMENT (hand throw) (bouncy ball) ┌───────┐ ┌───────────────┐ │SPOOL │ │ SUPERBALL │ │ │ ← Human │ ┌───────────┐ │ │ BRAIN │ throws │ │ SPOOL │ │ ← Human │ │ │ │ BRAIN │ │ throws └───────┘ │ └───────────┘ │ │ └───────┬───────┘ │ │ ▼ ▼ UNRAVEL by UNRAVEL by centrifugal force IMPACT + BOUNCE from throw spin + centrifugal │ │ ▼ ▼ ┌───────────────┐ ┌───────────────┐ │ MARIONETTE │ │ MARIONETTE │ │ FLIGHT MODE │ ═════ │ FLIGHT MODE │ └───────────────┘ └───────────────┘ SAME SYSTEM! (different deployment trigger) ``` --- ## 10. VARIANT: BOLA MODE CASCADE For the full bola experience - throw MULTIPLE balls that link mid-air: ``` MULTI-BALL BOLA ERUPTION ════════════════════════ THROW: BOUNCE: LINK: ○ ○ ○ ⛵ ⛵ ⛵ ⛵ ⛵───────⛵ \ │ / \│/ \│/ \ / \ │ / ◎───────◎ \ / \│/ │ │ \ / ▼ ↑ ↑ \ / ═══════════ ═══════════════════ ════╋════ │ MAGNETIC ⛵───┼───⛵ DOCKING │ ════╬════ │ FULL BOLA CONSTELLATION! ``` --- ## 11. IMPLEMENTATION NOTES ### Python Module Location `src/physics/ricochet_deployment.py` ### Key Classes - `SuperballShell` - Rubber shell physics + latch mechanism - `ImpactTrigger` - G-force detection and timing - `BounceDynamics` - Restitution and rebound calculation - `EruptionSequencer` - Shell separation + sail payout timing - `RicochetMarionette` - Full integrated system ### Integration Points - `src/physics/marionette_spool.py` - Core spool mechanics - `src/physics/slingshot_dynamics.py` - Bola physics - `src/physics/tether_dynamics.py` - Cable payout - `src/ai/dreamer_interface.py` - Champion brain --- ## 12. FUTURE WORK 1. **Multi-bounce recovery** - What if first bounce fails to trigger? 2. **Angle compensation** - Non-vertical bounces, spin correction 3. **Water landing variant** - Buoyant shell for maritime ops 4. **Sound-triggered variant** - Clap or whistle to deploy (no ground needed) --- *"The ground is not the enemy. The ground is the launch pad."* **— RICOCHET-001 Design Philosophy**