This is a little flight sim made in Bevy.
- Support for both keyboard and gamepad, but gamepad is recommended
- Terrain with real-world elevation data and collisions
- Loading data from GLTF with custom properties
- 3D cockpit
- Collisions with
avian3d - Water with screen space reflections
- A settings file (settings.json)
- Rust toolchain: Install Rust
- Git LFS: Used for large file assets.
-
Clone the repository and get large assets
git clone https://github.com/wesfly/bevy_fs.git cd bevy_fs git lfs pull -
Build and run the project
cargo run --release
This will build and launch bevy_fs. The first startup fetches terrain data and can take some time.
To start flying, you need to turn on the engine by pressing M. If you now bring the throttle to 100%, you should start flying.
You will start in the air, you just need to throttle up.
The settings are located in settings.json at the root of this project.
Terrain data will be stored in the terrain_cache folder after the first fetch (the game window will be unresponsive while fetching). To change the coordinates or the resolution, change terrain.coordinates or terrain.level_of_detail in the settings. Note that the general maximum level of detail is 15, but in most regions 14 or even less. Here is an interactive map for different resolutions: https://mapterhorn.com/coverage/
You can control the sun position using HJKL.
You can change input methods in the settings.
F3to take a screenshot (output:screenshots/user)RMB + dragto orbit cameraCto switch the camera view- Mouse wheel to zoom camera
Rto reset cameraGto raise or lower landing gear1for position lights2for strobe lights3for formation lights4for anti-collision lights
- Left stick to throttle and yaw
- Right stick to pitch and roll
- Left stick to steer
DPadUpandDPadDownto throttle up and down respectively
WASDQEto steerPgUpandPgDownto throttle up and down respectively
PRs welcome.
If you have any problems regarding this repository, please report them as an issue. Thanks!

