FlySim
A 3D drone & fixed-wing flight simulator with real-time OpenGL rendering, realistic aerodynamics, and a Qt control panel. Supports keyboard, mouse, and the WFLY ET16S RC transmitter over USB HID.
Features
- 12 multicopter models (quad / hexa / octo): GEPRC Mark5, iFlight, TBS, Tarot 680 Pro / T18 / T960, E616P, DJI Agras T50, DJI M600 Pro, DJI F450 — each built to its real wheelbase and frame dimensions
- 3 fixed-wing aircraft: trainer, Eclipson Model A, sport plane, with a proper aerodynamic model (angle of attack, lift, drag, stall)
- Power-system builder: 12 motors, 39 propellers (3"→54", incl. 3011), 12 batteries — real-time payload capacity & endurance via actuator-disc theory
- Terrain system: flat, fractal-noise random DEM, load DEM (PNG/ASC/GeoTIFF), and satellite imagery (ESRI World Imagery), with terrain-aware collision
- Airflow visualization: particle streamlines, rotor downwash, wind arrows
- Atmosphere: temperature / pressure / humidity / CO₂ → real-time air density, viscosity, speed of sound (ideal-gas law + Sutherland's law)
- Qt control panel (
flysim --qt): tabbed menu, model selection, power system, environment, and camera zoom - Realistic physics: alternating motor spin (CW/CCW), momentum-theory hover power, per-motor thrust mixing, Verlet rope + payload
- Live RC panel (channels CH1–CH4 in PWM, RSSI signal strength)
Install
pip install flysim
Or from source:
git clone https://github.com/CodeOfMe/FlySim.git
cd FlySim
pip install -e .
Run
flysim # pygame front-end
flysim --qt # PySide6 front-end with control panel
# or
python -m flysim
Requirements
- Python >= 3.10
- pygame >= 2.4, PyOpenGL >= 3.1.7, numpy >= 1.24
- trimesh >= 4.0, pygltflib >= 1.0
- PySide6 (optional, for
--qt)
Controls
Keyboard
| Action | Keys |
|---|---|
| Throttle up / down | W / S |
| Yaw left / right | A / D |
| Pitch forward / back | Up / Down |
| Roll left / right | Left / Right |
| Toggle airflow | V |
| Toggle fixed-wing / multicopter | F |
| Cycle drone model | ` (backtick) |
| Toggle payload | G |
| Pause | P |
| Reset | R |
| Orbit camera | Mouse drag |
| Zoom | Mouse wheel |
| Quit | ESC |
WFLY ET16S (HID, Mode 2)
Throttle = left stick Y, Yaw = left stick X, Pitch = right stick Y, Roll = right stick X. Auto-detected via pygame joystick.
Coordinate system
- North = -Z, East = +X, Up = +Y
- yaw = 0 faces North; yaw increases clockwise (top view)
License
GPL-3.0-or-later. See LICENSE.
Metadata
Release files for flysim 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| flysim-1.3.0.tar.gz | 1.5 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flysim-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.1 MB
Release files / flysim-1.3.0.tar.gz
| Download URL | flysim-1.3.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25ed762b81e5cc553a960ba162d6732a3604ed554003f649937a2b0ce7a860f4
|
|
BLAKE2b-256 checksum How to use checksums |
2c1b84c4d0dbefe432602bb4b7e46fd12bfb57257ea60b12f5f3d2e1a9ad42da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / flysim-1.3.0-py3-none-any.whl
| Download URL | flysim-1.3.0-py3-none-any.whl |
|---|---|
| Size | 1.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93f5edb02fe5f19da06046d8a38a09fc25183be30d93a3cea57c58229b4dca4d
|
|
BLAKE2b-256 checksum How to use checksums |
3ee5ef9c391f569c2c91341c10529b4e70463626f4d376a86b5ee4c5fd41ffe7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for flysim 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.