AirSim
AirSim Announcement: This repository will be archived next year
In 2017, Microsoft Research created AirSim as a simulation platform for AI research and experimentation. Five years later, this research project has achieved its goals and made significant progress—becoming a common way to share research code and test new ideas for aerial AI development and simulation. Furthermore, this time has also driven continuous advancements in how we apply technology to the real world, particularly in aerial mobility and autonomous systems. For example, drone delivery is no longer science fiction but a commercial reality, which means new demands need to be met. We have learned a lot along the way and are grateful for the continued engagement of our community.
In the spirit of continuous evolution, we will release an entirely new simulation platform next year and subsequently archive the original 2017 AirSim. The original AirSim code will remain accessible to users thereafter, but no updates will be immediately available. We will be focusing our efforts on developing a new product, called Microsoft Project AirSim, to meet the growing needs of the aerospace industry. Project AirSim will provide an end-to-end platform for safely developing and testing autonomous flight technologies through simulation. Users will benefit from the security, code review, testing, advanced simulation, and artificial intelligence capabilities that are unique to commercial products. As Project AirSim nears its release, we will provide learning tools and features to help you migrate to the new platform and guide you through the product. To learn more about building autonomous flight technology with the new Project AirSim, visit https://aka.ms/projectairsim.
Welcome to AirSim
AirSim is a simulator for drones, cars, and more, built on Unreal Engine (we've also released an experimental version for Unity ). It's an open-source, cross-platform simulator that supports software-in-the-loop simulation with major flight controllers like PX4 and ArduPilot, as well as hardware-in-the-loop simulation with PX4, for physically and visually realistic simulations. Developed as an Unreal plugin, it easily integrates into any Unreal environment. We've also released an experimental version of the Unity plugin.
Our goal is to develop AirSim as an AI research platform for experimenting with deep learning, computer vision, and reinforcement learning algorithms for autonomous vehicles. To this end, AirSim has also opened up its API to retrieve data and control the vehicle in a platform-independent manner.
Watch a quick 1.5 minute demo
Drones in AirSim
Cars in AirSim
How to get it
Windows
* Download the binary * Build it
Linux
* Download the binary * Build it
macOS
* Build it
See the Using Precompiled Binaries documentation for more details .
How to use
Documentation
View detailed documentation on every aspect of AirSim.
Manual Drive
If you have a remote controller (RC) like the one shown below, you can manually control the drone in the simulator. For cars, you can manually drive using the arrow keys.


Program Control
AirSim provides APIs that allow you to programmatically interact with the aircraft in the simulation. You can use these APIs to retrieve images, get status, control the aircraft, and more. These APIs are exposed via RPC and can be accessed from multiple languages, including C++, Python, C#, and Java.
These APIs are also available as part of a standalone, cross-platform library, so you can deploy them to the vehicle's companion computer. This allows you to write and test your code in a simulator and then execute it on a real vehicle. Transfer learning and related research is one of our key areas of focus.
Note that you can use the SimMode setting to specify a default vehicle or a new ComputerVision mode so that you are not prompted every time you start AirSim.
Collecting Training
You can generate training data for deep learning from AirSim in two ways. The simplest method is to simply press the "Record" button in the lower right corner. This will start recording the pose and image for each frame. The data recording code is very simple and can be modified to your liking.

A better way to generate training data the way you want is to access the API. This gives you full control over how, what, where, and when you record your data.
Computer Vision Mode
Another way to use AirSim is in the so-called "Computer Vision" mode. In this mode, you don't need a vehicle or physics engine. You can move around the scene using the keyboard or use the API to position the available cameras to any pose and collect information such as depth, parallax, surface normals, or object segmentation.
Weather Impact
Press F10 to view the various available weather effect options. You can also control the weather using the API. Press F1 to view other available options.

Tutorial
- Video - Pixhawk AirSim Setup Tutorial by Chris Lovett
- Video - Chris Lovett's AirSim and Pixhawk Tutorial
- Video - Jim Piavis demonstrates how to create a ready-made environment using AirSim
- Webinar - Enabling Autonomous Systems with High-Fidelity Simulation (by Sai Vemprala)
- Ashish Kapoor's AirSim Reinforcement Learning
- Microsoft Deep Learning and Robotics Garage chapters in the Self-Driving Car Cookbook
- Simon Levy and the WLU team use TensorFlow to implement simple collision avoidance
Participation
Paper
For more technical details, please refer to the AirSim paper (FSR 2017 conference). Please cite:
@inproceedings{airsim2017fsr,
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}
}
Contributions
If you are looking for areas where you can contribute, check out the open issues.
Who uses AirSim?
We maintain a list of projects, people, and groups we are aware of. If you would like to be included on this list, please submit a request here.
Contact
Join our GitHub discussion group to stay up to date with the latest developments or ask any questions.
We also have an AirSim group on Facebook.
What's New
- movie camera
- ROS2 wrapper
- API to list all assets
- movetoGPS API
- Optical flow camera
- simSetKinematics API
- Dynamically set object textures from existing UE4 materials or texture PNGs
- Ability to create/destroy lights and control light parameters
- Unity supports multiple drones
- Manual camera speed control via keyboard
For a complete list of changes, please see our changelog
FAQ
If you run into problems, check out the FAQ and feel free to post questions in the AirSim repository.
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ, or contact opencode@microsoft.com with additional questions or comments.
License
This project is released under the MIT License. Please see the LICENSE file for more details.

