tostido's picture
Add HuggingFace Space config + Streamlit app
0af5ed0
metadata
title: Archery Tether Propulsion Systems
emoji: 🏹
colorFrom: green
colorTo: blue
sdk: docker
app_file: app.py
pinned: false

Archery Tether Propulsion Systems (ATPS)

Kinetic Active Protection System Simulation

A physics-based simulation framework for modeling tethered aerodynamic defense systems.

Concept Overview

This system models a Tethered Swarm Defense Matrix where:

  • A central "Mother Drone" (High-Value Asset) provides thrust and command
  • Multiple Towed Aerodynamic Bodies (TABs) are tethered via cables
  • Each TAB has autonomous control surfaces for 360Β° positioning
  • The system can perform kinetic intercepts via "slingshot" release mechanics
      STANDARD MODE                    SLINGSHOT / BOLA MODE
      
           ↑ TAB-UP                         ╔═══════╗
           β”‚                                β•‘ BOLA  β•‘ ← All TABs merged
      ───●─┼─●───                           β•‘ HEAD  β•‘   into single mass
           β”‚                                β•šβ•β•β•β•€β•β•β•β•
           β”‚                                    β”‚ ← Braided cable
           ↓ TAB-DOWN                           β”‚
                                           [BUZZARD] ← Swings like nunchaku
     [BUZZARD] ═══► Thrust                      ↻

Operational Modes

1. DISPERSED MODE (Standard)

TABs operate independently, each with its own:

  • Cable tension control
  • Airfoil pitch/yaw
  • Autonomous intercept capability

2. SLINGSHOT / BOLA MODE (New!)

All TABs consolidate into a single articulated mass:

  • NUNCHAKU DYNAMICS: Buzzard swings the combined mass like Bruce Lee
  • MOMENTUM WHIP: Angular velocity transfers through cable
  • OPTIMAL RELEASE: DreamerV3 learns release timing for max velocity
  • GRID FIN SAILING: Deployable fins steer post-release trajectory
  CONSOLIDATE β†’ CHARGE β†’ SWING β†’ RELEASE β†’ SAIL β†’ IMPACT
       ●●●●      ↻        πŸŒ€       β†’β†’β†’      ✈️      πŸ’₯

3. AIRFOILED BUZZARD

The Buzzard itself has deployable lifting surfaces:

  • Grid Fins: Like Falcon 9 landing fins, titanium lattice
  • Wing Extension: Variable wingspan for flight regime optimization
  • Thrust Vectoring: Corkscrew propulsion with directional control

Physics Principles

  1. Momentum Conservation: Release mechanics exploit stored kinetic energy
  2. Centripetal Swing: Orbital maneuvers add rotational velocity to intercept vectors
  3. Drag-Thrust Ratio: Cable release causes instantaneous acceleration spike
  4. Aeroelastic Control: TABs use lift/side-force to maintain formation geometry
  5. Momentum Whip: Nunchaku-style angular momentum transfer (bola mode)
  6. Grid Fin Sailing: Deployable lattice fins for post-release trajectory control

Installation

pip install -r requirements.txt

Running the Simulation

# Main simulation
python src/main.py

# Visual trainer with DreamerV3
python -m src.training.visual_trainer

# Test slingshot physics
python -m src.physics.slingshot_dynamics

Project Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.py                      # Entry point
β”‚   β”œβ”€β”€ physics/
β”‚   β”‚   β”œβ”€β”€ tether_dynamics.py       # Cable tension & constraint physics
β”‚   β”‚   β”œβ”€β”€ aerodynamics.py          # Lift, drag, side-force calculations
β”‚   β”‚   β”œβ”€β”€ momentum.py              # Release & slingshot mechanics
β”‚   β”‚   └── slingshot_dynamics.py    # NEW: Nunchaku/bola mode physics
β”‚   β”œβ”€β”€ entities/
β”‚   β”‚   β”œβ”€β”€ mother_drone.py          # Central high-value asset (Buzzard)
β”‚   β”‚   └── towed_body.py            # Towed Aerodynamic Body (TAB)
β”‚   β”œβ”€β”€ ai/
β”‚   β”‚   β”œβ”€β”€ defensive_matrix.py      # 360Β° threat detection & intercept
β”‚   β”‚   β”œβ”€β”€ formation_ctrl.py        # Cross-formation maintenance
β”‚   β”‚   └── mission_controller.py    # Unified command (DreamerV3 interface)
β”‚   β”œβ”€β”€ training/
β”‚   β”‚   β”œβ”€β”€ visual_trainer.py        # Panda3D visual training
β”‚   β”‚   └── hold_control.py          # HOLD system with showcase modes
β”‚   └── visualization/
β”‚       β”œβ”€β”€ cinematic_camera.py      # Chase/orbit/tactical cameras
β”‚       β”œβ”€β”€ simple_geometry.py       # Visible 3D geometry
β”‚       └── enhanced_geometry.py     # Complex procedural geometry
β”œβ”€β”€ config/
β”‚   └── simulation_params.yaml       # Tunable physics parameters
└── tests/
    └── test_swing_physics.py        # Unit tests for slingshot mechanics

AI Architecture: Implicit Objective Encoding

The mission objective (PROTECT THE BUZZARD) is not explicitly programmed. Instead, it emerges from DreamerV3's learned world model through reward shaping:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  UNIFIED MISSION CONTROLLER                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚  TAB Array  β”‚    β”‚  Slingshot  β”‚    β”‚  Airfoiled  β”‚     β”‚
β”‚  β”‚  (Dispersed)β”‚    β”‚   (Bola)    β”‚    β”‚   Buzzard   β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚         β”‚                  β”‚                  β”‚             β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                            β–Ό                                β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚                   β”‚   DreamerV3    β”‚                        β”‚
β”‚                   β”‚  World Model   β”‚ ← Objective lives here β”‚
β”‚                   β”‚    (RSSM)      β”‚   in latent space      β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚
β”‚                            β–²                                β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚                   β”‚ Reward Shaper  β”‚ ← Implicit encoding    β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚
β”‚                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

"The omission of its physical form could stand to retain control"
- The AI's intentions exist in learned representations, not explicit rules
- Adversaries cannot easily reverse-engineer decision logic
- Objective emerges from experience, not programming

Mission Modes

Mode Description
PATROL No threats, maintain defensive formation
ALERT Threats detected, preparing response
ENGAGE Active threat interception
EVASIVE Buzzard damaged, emergency maneuvers
SLINGSHOT TABs consolidated into bola mode
RECOVERY Reforming after engagement

Defense Applications

  • Kinetic Intercept: Swing-release TABs into incoming threat trajectories
  • Bola Strike: Consolidated mass for high-momentum impact
  • Decoy Deployment: Sacrifice TABs to draw heat-seekers
  • EW Array: Distributed sensor/jammer positioning
  • Speed Burst: Mass cable-release for emergency evasion

This is a DEFENSIVE SYSTEMS simulation for research purposes only.