StrikeEngine Logo

StrikeEngine

Data-oriented C++23 aerospace simulation engine & GNC framework

⚑ Live Simulation Telemetry Cockpit (strike monitor) Click to Toggle

Real-time flight kinematics and guidance telemetry for an 80 km head-on BVR engagement (Astra MK2 vs. Su-30 Flanker):

strike monitor cooperative_bvr_80km_astra.scenario.json --realtime
Loading StrikeEngine live telemetry stream...

StrikeEngine is a data-oriented C++23 aerospace simulation engine and Guidance, Navigation, and Control (GNC) framework. I built it for simulating high-speed 6-DOF (six degrees of freedom) missile flyouts, air-to-air Beyond-Visual-Range (BVR) engagements, surface-to-air interceptors (SAMs), and large-scale Monte Carlo dispersion studies.

Most game physics engines treat rigid bodies like bouncing boxes at 60 FPS, which quickly breaks down in aerospace dynamics. StrikeEngine takes a systems-first, data-oriented approach: it enforces a strict 1 ms physical truth gate (1 kHz Runge-Kutta 4th order integration), runs across a rotating WGS84 ellipsoidal Earth, and scales seamlessly from single-threaded CPU execution (>70,000 steps/sec) to massively parallel Vulkan 1.3 GPU compute with verified sub-10 cm direct kinetic intercept accuracy.

Why I Built It

High-fidelity aerospace simulations usually fall into two extremes: slow, monolithic legacy Fortran/MATLAB codebases that are impossible to embed into modern software, or oversimplified game physics engines that lack realistic atmospheric models, seeker tracking, or actuator dynamics.

I wanted an engine that combined mathematical rigor with modern systems programming: contiguous Structure-of-Arrays (SoA) memory layouts, zero heap allocations in the inner physics loop, full environmental modeling, and modern hardware acceleration through GPU compute shaders and Python reinforcement learning environments.

Core Capabilities

1. 6-DOF Physical Dynamics & Truth Integration

2. Guidance, Navigation & Control (GNC)

3. Vulkan 1.3 GPU Compute Pipeline

For large-scale Monte Carlo dispersion runs, StrikeEngine includes a companion GPU compute backend written in the Slang shader language. The entire 6-DOF pipelineβ€”equations of motion, aerodynamics, motor thrust curves, and autopilotβ€”is vectorized and dispatched directly to Vulkan compute queues.

A double-buffered asynchronous pipeline overlaps GPU compute dispatch with host telemetry staging and event extraction, doubling throughput while maintaining bit-accurate parity with CPU truth states.

4. Native CLI Suite & Live Cockpit (strike)

StrikeEngine includes a standalone CLI utility called strike with several built-in subcommands:

# Launch the live terminal telemetry cockpit
strike monitor data/scenarios/cooperative_bvr_80km_astra.scenario.json --realtime

# Run 100-run stochastic Monte Carlo dispersion analysis
strike montecarlo data/scenarios/cooperative_bvr_80km_astra.scenario.json \
  --runs 100 --threads 8 --sweep mass:165:185

5. Python SDK & Reinforcement Learning

StrikeEngine provides native Python bindings with zero-copy buffer views (memoryview, NumPy, PyTorch, JAX) into engine truth memory, plus an out-of-the-box Gymnasium environment (StrikeEnv) for training missile guidance and evasive autopilots using reinforcement learning with Stable-Baselines3.

import strikeengine as se

# Run high-fidelity 6-DOF flyout with 1 line of Python
result = se.run("data/scenarios/cooperative_bvr_80km_astra.scenario.json")
print(f"Passed: {result.passed}, Miss: {result.miss_distance_m:.2f} m, Kill: {result.killed_target}")
print(f"Throughput: {result.steps_per_second:,.0f} steps/sec ({result.real_time_multiplier:.0f}x real-time)")

Real-World Scenarios

The repository bundles realistic engagement scenarios in data/scenarios/: