C++ C# C Python Shell CMake Batchfile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.vscode added demo video link for camera noise and interference Feb 13, 2018
AirLib Allow to configure additional cameras on the drone in the JSON settings Mar 13, 2018
AirLibUnitTests added sun moon coordinates utils, set car steering via kbd to softer Feb 23, 2018
DroneServer fixed #777 Feb 13, 2018
DroneShell VehicleCameraBase -> ImageCaptureBase, #662 Dec 6, 2017
Examples VehicleCameraBase -> ImageCaptureBase, #662 Dec 6, 2017
HelloCar VehicleCameraBase -> ImageCaptureBase, #662 Dec 6, 2017
HelloDrone VehicleCameraBase -> ImageCaptureBase, #662 Dec 6, 2017
LogViewer Remove unnatural vibration when grounded, by @lovettchris , PR #670/ Dec 9, 2017
MavLinkCom full kinematics API for car and multirotor Dec 15, 2017
PythonClient added sun moon coordinates utils, set car steering via kbd to softer Feb 23, 2018
Unreal fixed car controls in log: #869 Mar 14, 2018
cmake Linux build/setup changes for rpclib upgrade Jan 20, 2018
docs Add a note about camera indices Mar 13, 2018
tools Fix windows clean build (installs cmake if we need it). Apr 24, 2017
.gitignore refactor PidController and Firmware to make it extensible for adaptiv… Feb 9, 2018
.gitmodules remove, rpclib as submodule, download from git release, cmake install… Jan 20, 2018
.travis.yml clang compile error fix, remove OSX from travis Sep 28, 2017
AirSim.sln numpy example, docs update PythonClient->AirSimClient rename, reset API Oct 4, 2017
ISSUE_TEMPLATE.md initial Feb 9, 2018
LICENSE readme and license update Feb 15, 2017
README.md Update typo in README Feb 1, 2018
UnrealPluginFiles.vcxproj API refactor, simSetPose, simGetPose, reset for drones Oct 15, 2017
UnrealPluginFiles.vcxproj.filters API refactor, simSetPose, simGetPose, reset for drones Oct 15, 2017
build.cmd powershell TLS 1.0/1.2 fix Feb 26, 2018
build.sh fixed a typo Feb 17, 2018
build_all_ue_projects.bat added rebuild option for build all script Feb 11, 2018
check_cmake.bat remove, rpclib as submodule, download from git release, cmake install… Jan 20, 2018
clean.cmd require reset() as first call, checks for reset(), update() seq Aug 1, 2017
clean.sh fixed pushd issue in setup.sh, cmake issue with -L Jul 21, 2017
install_run_all.sh restore pulling UE4 code from git while setting up from sh script. Jan 25, 2018
setup.sh unzip missing in setup file Mar 13, 2018


Welcome to AirSim

AirSim is a simulator for drones, cars and more built on Unreal Engine. It is open-source, cross platform and supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped in to any Unreal environment you want.

Our goal is to develop AirSim as a platform for AI research to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. For this purpose, AirSim also exposes APIs to retrieve data and control vehicles in a platform independent way.

Check out the quick 1.5 minute demo

Drones in AirSim

AirSim Drone Demo Video

Cars in AirSim

AirSim Car Demo Video

How to Get It



How to Use It

Choosing Your Vehicle: Car or Multirotor

By default AirSim spawns multirotor. You can easily change this to car and use all of AirSim goodies. Please see using car guide.

Manual drive

If you have remote control (RC) as shown below, you can manually control the drone in the simulator. For cars, you can use arrow keys to drive manually.

More details

record screenshot

record screenshot

Programmatic control

AirSim exposes APIs so you can interact with vehicle in the simulation programmatically. You can use these APIs to retrieve images, get state, control the vehicle and so on. The APIs are exposed through RPC and accessible via variety of languages including C++, Python, C# and Java.

These APIs are also available as a part of a separate independent cross-platform library so you can deploy them on an companion computer on your vehicle. This way you can write and test your code in simulator and later execute it on the real vehicles. Transfer learning and related research is one of our focus areas.

More details

Gathering training data

There are two ways you can generate training data from AirSim for deep learning. The easiest way is to simply press the record button on the lower right corner. This will start writing pose and images for each frame. The data logging code is pretty simple and you can modify it to your heart's desire.

record screenshot

A better way to generate training data exactly the way you want is by accessing the APIs. This allows you to be in full control of how, what, where and when you want to log data.

Computer Vision mode

Yet another way to use AirSim is so-called "Computer Vision" mode. In this mode, you don't have vehicle physics and dynamics but you can use keyboard to move around and use APIs to position the vehicle in any arbitrary pose and get images such as depth, disparity, surface normals or object segmentation.

More details


What's New



More technical details are available in AirSim paper (FSR 2017 Conference). Please cite this as:

  author = {Shital Shah and Debadeepta Dey and Chris Lovett and Ashish Kapoor},
  title = {AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles},
  year = {2017},
  booktitle = {Field and Service Robotics},
  eprint = {arXiv:1705.05065},
  url = {https://arxiv.org/abs/1705.05065}


Please take a look at open issues and Trello board if you are looking for areas to contribute to.

Who is Using AirSim?

We are maintaining list of few projects, people and groups that we are aware of. If you had like to be featured in this list please add request here.


Join the AirSim group at Facebook to stay up to date or ask any questions.


If you run into problems, check the FAQ and feel free to post issues on the AirSim github.


This project is released under MIT License. Please review License file for more details.