Simulate drone flight through wind, GPS, and airspace—powered by NVIDIA Omniverse and OpenUSD.
ZephyrSim is an open-source drone simulation environment built in IsaacSim and OpenUSD. It focuses on realistic aerial navigation through dynamic environments with wind, planes, and GPS imperfections—ideal for testing autonomous flight logic and perception systems.
- Realistic drone flight with simulated GPS & IMU
- Configurable wind zones and turbulence fields
- Simulated airspace with moving planes
- Path-planning with Python scripting
- Sensor support: Coming soon!
- ROS2-ready (optional) for real-world testing integration
The mean wind speed at height
-
$z_0$ : surface roughness (m) -
$v_{ref}$ : wind speed at reference height$z_{ref}$ -
$z$ : current height (m)
This models how wind increases with altitude above the ground.
A standard model for simulating atmospheric turbulence in flight simulation:
- Generates realistic, time-correlated wind fluctuations in all directions.
- Used in aerospace and UAV research.
- See: Dryden Wind Turbulence Model (Wikipedia)
- Gust Front: Sudden, strong, short-lived increase in wind speed, often in the main wind direction.
- Microburst: Localized, intense downdraft with outward radial wind at the surface.
Both are modeled as time- and position-dependent wind events:
- Gusts: $\vec{v}{gust} = \vec{v}{wind} \cdot S(t, d)$
- Microburst:
$\vec{v}_{microburst} = [\text{outflow}, \text{down}, \text{outflow}]$
where
ZephyrSim models air density variations with altitude using the barometric formula, which is critical for realistic drag and wind force calculations. The air density
Where:
-
$\rho_0 = 1.225$ kg/m³ (sea-level air density) -
$T_0 = 288.15$ K (sea-level temperature, 15°C) -
$L = 0.0065$ K/m (temperature lapse rate) -
$g = 9.80665$ m/s² (gravitational acceleration) -
$M = 0.0289644$ kg/mol (molar mass of air) -
$R = 8.31447$ J/(mol·K) (gas constant) -
$h$ : altitude (m, clamped to$\geq 0$ )
This model approximates air density changes up to approximately 11 km, accounting for temperature decrease with altitude. The calculated air density is used in drag force computations:
Where:
-
$C_d = 0.3$ (drag coefficient) -
$A = 0.1$ m² (cross-sectional area) -
$\vec{v}_{rel}$ : relative velocity between drone and wind
This ensures realistic simulation of wind effects on the drone at varying altitudes.
See the code for details and parameter tuning!
- NVIDIA Omniverse Launcher (latest)
- Isaac Sim installed
- Python 3.10+
- Git & basic CLI tools
git clone https://github.com/SaharshSS/zephyrsim.git
cd zephyrsim
# Launch Isaac Sim and run the control script
./python.sh scripts/fly_to_waypoints.py