A comprehensive web application for naval combat modeling using various implementations of the Salvo Combat Model. This application provides interactive simulations of different naval combat scenarios, from basic salvo equations to complex Monte Carlo simulations.
- Basic Salvo Model: Classic implementation of the salvo equations
- Continuous-Time Salvo: Differential equation-based model for continuous combat simulation
- Stochastic Salvo: Probabilistic model with Gaussian noise in damage calculations
- Multiple Forces Salvo: Extension to handle multiple combatant forces
- Monte Carlo Simulation: Advanced model with multi-domain combat (air, naval, submarine)
- Clone this repository:
git clone https://github.com/yourusername/salvo-equations-simulator.git
cd salvo-equations-simulator- Create a virtual environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows, use: venv\Scripts\activate- Install the required packages:
pip install -r requirements.txtTo run the application:
streamlit run app.pyThe application will open in your default web browser at http://salvo-equations.streamlit.app.
.
├── app.py # Main Streamlit application
├── assets/ # Directory containing images and other static files
│ ├── CDDGN.png # CDDGN logo
│ └── naval-battle.jpg # Background image
├── requirements.txt # Python dependencies
└── README.md # This file
Let:
-
$$x_n$$ : fraction of Blue force at time step n -
$$y_n$$ : fraction of Red force at time step n -
$$f_x$$ : firepower per unit of Blue -
$$f_y$$ : firepower per unit of Red -
$$q_x$$ : fraction of Red’s incoming fire intercepted by Blue -
$$q_y$$ : fraction of Blue’s incoming fire intercepted by Red -
$$C_x$$ : defensive capacity (saturation threshold) of Blue -
$$C_y$$ : defensive capacity of Red -
$$D(\cdot, \cdot)$$ : nonlinear damage function (models saturation effects)
Then the equations are:
- Simulates combat between two forces
- Parameters include initial forces, firepower, and interception capabilities
- Uses differential equations for continuous combat simulation
- Provides smooth force evolution over time
- Adds Gaussian noise to damage calculations
- Accounts for uncertainty in combat outcomes
- Extends the basic model to handle multiple combatant forces
- Complex interactions between multiple forces
The Monte Carlo simulation in this project uses the following probabilistic equations:
If
then side
Repeat for each simulation
- Multi-domain combat (air, naval, submarine)
- Poisson-distributed firepower
- Binomial-distributed hit probabilities
- Adaptive reinforcement probabilities
- Morale collapse mechanics
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions and feedback, please contact:
- Email: tpires@id.uff.br or tullio.mozart@marinha.mil.br
- GitHub: KanonStarbringer