Skip to content

InsaneInfinity/Balistic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โฌก BALISTIC V5

Advanced Ballistic Computer System / Zaawansowany System Komputera Balistycznego

License Python CSharp Redis

๐Ÿ‡ฌ๐Ÿ‡ง A ballistic fire control simulator with satellite map, blast zones and Coriolis effect. Built as a microservices architecture: Python/Flask frontend + C# ballistic processor + Redis Streams.

๐Ÿ‡ต๐Ÿ‡ฑ Symulator obliczeniowy balistyki zewnฤ™trznej z mapฤ… satelitarnฤ…, strefami raลผenia i efektem Coriolisa. Zbudowany jako architektura mikrousล‚ug: frontend Python/Flask + procesor balistyczny C# + Redis Streams.


๐Ÿ‡ฌ๐Ÿ‡ง English

๐Ÿ“ธ Features

  • ๐Ÿ—บ๏ธ Satellite map (Google Satellite via Leaflet) with shooter and target positioning
  • ๐ŸŽฏ Multi-select targets โ€” mark multiple targets, sequential fire with FIRE button
  • ๐Ÿ”ข Ballistic calculations with Euler simulation + air resistance (Cd), air density, wind
  • ๐ŸŒ€ Coriolis effect โ€” real deflection based on latitude and time of flight
  • ๐Ÿ’ฅ Blast zones โ€” 4 concentric circles (total destruction / heavy / light / hazard)
  • ๐Ÿ“Š Results panel โ€” live ballistic results in side panel after each shot
  • ๐Ÿ“œ Shot history โ€” clickable list with map zoom to marker
  • ๐Ÿ“„ PDF export โ€” session report with full ballistic data and blast zones
  • ๐Ÿ”„ System/ammo change without restart โ€” dropdowns in side panel
  • ๐Ÿ” Session token authorization โ€” endpoints protected against unauthorized access

๐Ÿ”ซ Supported Systems & Ammunition

System Round vโ‚€ [m/s] Mass [kg] Trajectory
AHS KRAB (155mm) M107 HE 560 43.2 Artillery
AHS KRAB (155mm) EXCALIBUR 560 48.0 Artillery
M120 RAK (120mm) HE STD 280 14.5 Artillery
M120 RAK (120mm) SMOKE 250 13.8 Artillery
LEOPARD 2 (120mm) APFSDS 1650 7.3 Flat (KE)
LEOPARD 2 (120mm) HEAT 1140 13.1 Flat (KE)

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     Redis Stream      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Python / Flask    โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ   โ”‚    C# Processor      โ”‚
โ”‚                     โ”‚   ballistics:stream   โ”‚                      โ”‚
โ”‚  - Leaflet Map      โ”‚                       โ”‚  - Euler Simulation  โ”‚
โ”‚  - Weather API      โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”‚  - Coriolis Effect   โ”‚
โ”‚  - Results Panel    โ”‚   ballistics:result   โ”‚  - Blast Zones       โ”‚
โ”‚  - PDF Export       โ”‚                       โ”‚                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โš™๏ธ Requirements

๐Ÿš€ Installation

1. Clone the repository

git clone https://github.com/YOUR_LOGIN/balistic.git
cd balistic

2. Install Python dependencies

python -m pip install flask redis requests python-dotenv reportlab

3. Create .env file

WEATHER_API_KEY=YOUR_API_KEY

4. Start Redis

redis-cli ping   # should respond PONG

5. Build C# processor

dotnet build

โ–ถ๏ธ Running

Run in two separate windows:

Window 1 โ€” Ballistic processor:

dotnet run

Window 2 โ€” Frontend:

python Balistic_Input.py

Log in (admin / admin), the map will open automatically in your browser.

๐Ÿ–ฑ๏ธ Map Controls

Action Effect
RMB (right click) Move shooter position
LMB (left click) Mark target (yellow marker)
FIRE (N) button Fire at all marked targets
CANCEL button Remove all targets without firing
History click Zoom to target on map
โฌ‡ PDF Export session report

๐Ÿงฎ Physics Model

Trajectory simulation

  • Euler method with dt=0.01s step for KE/HEAT rounds
  • Empirical formula for artillery (angle 45ยฐโ€“65ยฐ based on dist/max_range ratio)
  • Drag force: F_drag = ยฝ ยท Cd ยท ฯ ยท A ยท vยฒ

Coriolis Effect

d_cor = ฮฉ ยท sin(ฯ†) ยท v_avg ยท tยฒ / 2

where ฮฉ = 7.2921ร—10โปโต rad/s, ฯ† = shooter's latitude (dynamic)

Air density

ฯ = (p ยท 100) / (287.058 ยท (T + 273.15))

Calculated from live weather data via OpenWeatherMap.

Blast zones (NATO / FM 6-40 data)

Round Total Heavy Light Hazard
M107 HE / EXCALIBUR 30 m 100 m 300 m 800 m
HE STD (RAK) 8 m 30 m 80 m 200 m
SMOKE โ€” โ€” โ€” 80 m
APFSDS kinetic penetration โ€” โ€” โ€”
HEAT โ€” โ€” โ€” 5 m

โš ๏ธ Disclaimer

This system is intended for educational and simulation purposes only. Calculations are a physical approximation โ€” not suitable for operational use. Real fire control systems use far more complex models (6-DOF, 3-axis Coriolis, met data from balloon sondes, barrel wear, etc.).


๐Ÿ‡ต๐Ÿ‡ฑ Polski

๐Ÿ“ธ Funkcje

  • ๐Ÿ—บ๏ธ Mapa satelitarna (Google Satellite via Leaflet) z pozycjonowaniem strzelca i celรณw
  • ๐ŸŽฏ Multi-select celรณw โ€” zaznacz wiele celรณw, wystrzaล‚ sekwencyjny przyciskiem OGIEลƒ
  • ๐Ÿ”ข Obliczenia balistyczne z symulacjฤ… Euler + opรณr powietrza (Cd), gฤ™stoล›ฤ‡ powietrza, wiatr
  • ๐ŸŒ€ Efekt Coriolisa โ€” realne odchylenie zaleลผne od szerokoล›ci geograficznej i czasu lotu
  • ๐Ÿ’ฅ Strefy raลผenia โ€” 4 koncentryczne okrฤ™gi (zniszczenie totalne / ciฤ™ลผkie / lekkie / zagroลผenie)
  • ๐Ÿ“Š Panel wynikรณw โ€” wyniki balistyczne na ลผywo w panelu bocznym po kaลผdym strzale
  • ๐Ÿ“œ Historia strzaล‚รณw โ€” klikalna lista z powrotem do znacznika na mapie
  • ๐Ÿ“„ Eksport PDF โ€” raport sesji z peล‚nymi danymi balistycznymi i strefami raลผenia
  • ๐Ÿ”„ Zmiana systemu/amunicji bez restartu โ€” dropdowny w panelu bocznym
  • ๐Ÿ” Autoryzacja tokenem sesji โ€” endpointy chronione przed nieautoryzowanym dostฤ™pem

๐Ÿ”ซ Obsล‚ugiwane systemy i amunicja

System Pocisk vโ‚€ [m/s] Masa [kg] Typ toru
AHS KRAB (155mm) M107 HE 560 43.2 Artyleryjski
AHS KRAB (155mm) EXCALIBUR 560 48.0 Artyleryjski
M120 RAK (120mm) HE STD 280 14.5 Artyleryjski
M120 RAK (120mm) SMOKE 250 13.8 Artyleryjski
LEOPARD 2 (120mm) APFSDS 1650 7.3 Pล‚aski (KE)
LEOPARD 2 (120mm) HEAT 1140 13.1 Pล‚aski (KE)

๐Ÿ—๏ธ Architektura

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     Redis Stream      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Python / Flask    โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ   โ”‚    C# Procesor       โ”‚
โ”‚                     โ”‚   ballistics:stream   โ”‚    Balistyczny       โ”‚
โ”‚  - Mapa Leaflet     โ”‚                       โ”‚                      โ”‚
โ”‚  - Pogoda API       โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”‚  - Symulacja Euler   โ”‚
โ”‚  - Panel wynikรณw    โ”‚   ballistics:result   โ”‚  - Coriolis          โ”‚
โ”‚  - Eksport PDF      โ”‚                       โ”‚  - Strefy raลผenia    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โš™๏ธ Wymagania

๐Ÿš€ Instalacja

1. Sklonuj repozytorium

git clone https://github.com/TWOJ_LOGIN/balistic.git
cd balistic

2. Zainstaluj zaleลผnoล›ci Python

python -m pip install flask redis requests python-dotenv reportlab

3. Utwรณrz plik .env

WEATHER_API_KEY=TWOJ_KLUCZ_API

4. Uruchom Redis

redis-cli ping   # powinno odpowiedzieฤ‡ PONG

5. Skompiluj procesor C#

dotnet build

โ–ถ๏ธ Uruchomienie

Uruchom w dwรณch osobnych oknach:

Okno 1 โ€” Procesor balistyczny:

dotnet run

Okno 2 โ€” Frontend:

python Balistic_Input.py

Zaloguj siฤ™ (admin / admin), mapa otworzy siฤ™ automatycznie w przeglฤ…darce.

๐Ÿ–ฑ๏ธ Obsล‚uga mapy

Akcja Efekt
PPM (prawy klik) Przesuล„ pozycjฤ™ strzelca
LPM (lewy klik) Zaznacz cel (ลผรณล‚ty znacznik)
Przycisk OGIEลƒ (N) Wystrzaล‚ do wszystkich zaznaczonych celรณw
Przycisk ANULUJ CELE Usuล„ zaznaczenia bez strzelania
Klik na historiฤ™ Zoom na cel na mapie
โฌ‡ PDF Eksportuj raport sesji

๐Ÿงฎ Model fizyczny

Symulacja trajektorii

  • Metoda Euler z krokiem dt=0.01s dla pociskรณw KE/HEAT
  • Wzรณr empiryczny dla artylerii (kฤ…t 45ยฐโ€“65ยฐ zaleลผny od stosunku dystans/zasiฤ™g_max)
  • Siล‚a oporu: F_drag = ยฝ ยท Cd ยท ฯ ยท A ยท vยฒ

Efekt Coriolisa

d_cor = ฮฉ ยท sin(ฯ†) ยท v_avg ยท tยฒ / 2

gdzie ฮฉ = 7.2921ร—10โปโต rad/s, ฯ† = szerokoล›ฤ‡ geograficzna strzelca (dynamiczna)

Gฤ™stoล›ฤ‡ powietrza

ฯ = (p ยท 100) / (287.058 ยท (T + 273.15))

Obliczana na podstawie aktualnych danych pogodowych z OpenWeatherMap.

Strefy raลผenia (dane NATO / FM 6-40)

Pocisk Totalne Ciฤ™ลผkie Lekkie Zagroลผenie
M107 HE / EXCALIBUR 30 m 100 m 300 m 800 m
HE STD (RAK) 8 m 30 m 80 m 200 m
SMOKE โ€” โ€” โ€” 80 m
APFSDS penetracja kinetyczna โ€” โ€” โ€”
HEAT โ€” โ€” โ€” 5 m

๐Ÿ“ Struktura projektu

balistic/
โ”œโ”€โ”€ Balistic_Input.py      # Frontend Python/Flask + mapa
โ”œโ”€โ”€ Program.cs             # Procesor balistyczny C#
โ”œโ”€โ”€ Balistic.csproj        # Konfiguracja projektu .NET
โ”œโ”€โ”€ .env                   # Klucz API (nie commitowaฤ‡!)
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ balistic_log.txt       # Log strzaล‚รณw (generowany automatycznie)
โ””โ”€โ”€ README.md

โš ๏ธ Zastrzeลผenie

System przeznaczony wyล‚ฤ…cznie do celรณw edukacyjnych i symulacyjnych. Obliczenia sฤ… przybliลผeniem fizycznym โ€” nie nadajฤ… siฤ™ do zastosowaล„ operacyjnych. Rzeczywiste systemy kierowania ogniem uลผywajฤ… znacznie bardziej zล‚oลผonych modeli (6-DOF, efekt Coriolisa w 3 osiach, dane meteorologiczne z sond balonowych, zuลผycie lufy i in.).


๐Ÿ“œ License / Licencja

MIT โ€” use it, modify it, build on it. / Uลผywaj, modyfikuj, rozwijaj.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors