Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 119 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,16 @@
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Features](#features)
- [Screenshots](#screenshots)
- [Installation](#installation)
- [Prerequisites](#prerequisites)
- [Steps](#steps)
- [Windows Executable (Windows 11 an 10)](#windows-executable-windows-11-an-10)
- [License](#license)
- [Option 1: Windows Executable (Windows 10/11)](#option-1-windows-executable-windows-1011)
- [Option 2: Install from Source](#option-2-install-from-source)
- [Usage](#usage)
- [Project Structure](#project-structure)
- [Submitting Issues](#submitting-issues)
- [License](#license)
- [Author](#author)
- [Acknowledgements](#acknowledgements)

---
Expand All @@ -43,52 +47,115 @@

## Features

- Compute aerodynamic coefficients ($C_L$, $C_D$, moments) for various wing configurations.
- Interactive 2D/3D visualization with Plotly.
- Customizable wing geometry: sweep, dihedral, taper, control surfaces.
- Analyze multiple flight conditions (angle of attack, sideslip, airspeed).
- NACA airfoil generation and analysis.
- Modular, extensible Python architecture.
- **Accurate VLM Implementation**: Compute aerodynamic coefficients ($C_L$, $C_D$, moments) for wing configurations.
- **Interactive Visualization**: 2D/3D plots of lift distribution, pressure coefficients, and geometry using Plotly and Matplotlib.
- **Customizable Geometry**: Define wing parameters like sweep, dihedral, taper, and control surfaces.
- **Flexible Flight Conditions**: Analyze multiple angles of attack, sideslip angles, and airspeeds.
- **NACA Airfoil Support**: Generate and analyze NACA airfoil profiles.
- **Modular Architecture**: Extensible Python codebase for custom analyses and integration with NumPy, Matplotlib, and more.
- **User-Friendly Interface**: Intuitive Python API, ready-to-use executables, and Jupyter notebook examples.
- **Comprehensive Documentation**: Step-by-step guides and practical examples.

---
### Screenshots

<div align="center">

| ![Welcome](docs/screenshots/APP/bienvenida.png) | ![Main Menu](docs/screenshots/APP/menu.png) |
|:--:|:--:|
| Welcome | Main Menu |

| ![Curvature](docs/screenshots/APP/curvatura.png) | ![3D Discretization](docs/screenshots/A320/Wing_Discretization3d_htpyvtp1.svg) |
|:--:|:--:|
| Wing Curvature | 3D Wing Discretization (A320) |

</div>

<details>
<summary>View all screenshots</summary>

- **Welcome**
![Welcome](docs/screenshots/APP/bienvenida.png)

- **Main Menu**
![Main Menu](docs/screenshots/APP/menu.png)

- **Wing Curvature**
![Curvature](docs/screenshots/APP/curvatura.png)

- **3D Wing Discretization (A320)**
![3D Discretization](docs/screenshots/A320/Wing_Discretization3d_htpyvtp1.svg)

- **Vorticity Distribution (Flat Plate with Aileron)**
![Gammas](docs/screenshots/Placa%20plana%20con%20aleron/Gammas.svg)

</details>

## Installation

### Prerequisites

- Python 3.8+
- Web browser (Chrome 90+, Firefox 85+, or equivalent)
- **Python 3.8+** (for source installation)
- **Web Browser** (Chrome 90+, Firefox 85+, or equivalent)
- **Git** (optional, for cloning the repository)
-
### Option 1: Windows Executable (Windows 10/11)

### Steps
1. Download `app.exe` from the [Releases page](https://github.com/JaviLendi/VLMPy/releases).
2. Double-click to launch the application—no additional setup required.

### Option 2: Install from Source

1. Clone the repository:
```bash
git clone https://github.com/JaviLendi/VLMPy.git
cd VLMPy
```
```bash
git clone https://github.com/JaviLendi/VLMPy.git
cd VLMPy
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
*Tip*: Update pip with `pip install --upgrade pip` if needed.
```bash
pip install -r requirements.txt
```
*Tip*: Update pip with `pip install --upgrade pip` if needed.
3. Run the app:
```bash
python app.py
```
Access at [http://localhost:5000](http://localhost:5000).
```bash
python app.py
```
4. Access the web interface at [http://localhost:5000](http://localhost:5000).

#### Windows Executable (Windows 11 an 10)
---
## Usage

Download `app.exe` from the [Releases page](https://github.com/JaviLendi/VLMPy/releases) and double-click to launch.
- **Executable**: Launch `app.exe` (Windows) for a standalone experience.
- **Python API**: Import VLMPy modules in your scripts for custom analyses (see `src/lib/`).
- **Jupyter Notebooks**: Explore example notebooks in the `notebooks/` directory for guided tutorials.
- **Web Interface**: Run `app.py` to access the interactive web app at [http://localhost:5000](http://localhost:5000).

---
Example scripts and documentation are available in the `notebooks/` and `docs/` directories.

## License
---

VLMPy is distributed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE).
## Project Structure

```
VLMPy/
├── src/ # Source code
│ ├── lib/ # Core VLM and utility modules
│ │ ├── vlm.py # Vortex Lattice Method implementation
│ │ ├── naca.py # NACA airfoil generation utilities
│ │ ├── geometry.py # Wing geometry creation and manipulation
│ ├── static/ # Static assets (images, data files)
│ ├── templates/ # HTML templates for web interface
│ └── app.py # Application entry point
├── notebooks/ # Example Jupyter notebooks
├── docs/ # Documentation and project reports
├── requirements.txt # Python dependencies
├── README.md # Project documentation
└── LICENSE # License information
```

---


## Submitting Issues

Found a bug or have a suggestion? Please open an issue on GitHub.
Expand All @@ -101,11 +168,31 @@ Your feedback helps improve VLMPy!

---

## License

VLMPy is distributed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE).

---

## Author

**Javier Lendínez Castillo**
_Aerospace Engineer_

- 💼 GitHub: [@JaviLendi](https://github.com/JaviLendi)
- 🏫 Universidad Alfonso X el Sabio

---


## Acknowledgements

- **Author:** Javier Lendínez Castillo
- **Supervisor:** Héctor Gómez Cedenilla
- **Date:** June 2025
- **Supervisor**: Héctor Gómez Cedenilla
- **Institution**: Universidad Alfonso X el Sabio
- **Date**: June 2025

- **Additional Acknowledgements**: Marcos Antonio Rodríguez and Ignacio Maroto Villar, professors at Universidad Alfonso X el Sabio

> ℹ️ For academic details and mathematical derivations, see `docs/TFG.pdf` (coming soon) and source code appendices.

---
2 changes: 2 additions & 0 deletions cache_plane_variables.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
wing_sections: [{'chord_root': 1.0, 'chord_tip': 1.0, 'span_fraction': 8.0, 'sweep': np.float64(0.5235987755982988), 'alpha': np.float64(0.05235987755982989), 'dihedral': np.float64(0.06981317007977318), 'NACA_root': '3215', 'NACA_tip': '1310'}]
horizontal_stabilizer: {'x_translate': 2.0, 'z_translate': 0.0, 'NACA_root': '3215', 'NACA_tip': '3215', 'chord_root': 0.5, 'chord_tip': 0.5, 'span_fraction': 2.0, 'sweep': np.float64(0.5235987755982988), 'alpha': np.float64(0.0), 'dihedral': np.float64(0.0)}
File renamed without changes.
Binary file added docs/img/Github_social.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading