Repository Analysis

microsoft/AirSim

Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research

3.5 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of microsoft/AirSim, a C++ project with 18,306 GitHub stars. SynthScan v2.0 examined 201,076 lines of code across 806 source files, recording 840 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 3.5 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

3.5
Adjusted Score
3.5
Raw Score
100%
Time Factor
2026-06-30
Last Push
18.3K
Stars
C++
Language
201.1K
Lines of Code
806
Files
840
Pattern Hits
2026-07-14
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 2MEDIUM 11LOW 827

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 840 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Over-Commented Block619 hits · 449 pts
SeverityFileLineSnippetContext
LOWUnity/AirLibWrapper/AirsimWrapper/Source/PawnSimApi.h1#pragma onceCOMMENT
LOW…/Source/Vehicles/Multirotor/SimModeWorldMultiRotor.cpp41 //setup clock in ClockFactoryCOMMENT
LOWros/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h1#include "common/common_utils/StrictMode.hpp"COMMENT
LOWros/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h21#include <airsim_ros_pkgs/Land.h>COMMENT
LOWros/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h41#include <nav_msgs/Odometry.h>COMMENT
LOWros/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h81{COMMENT
LOW…s/src/airsim_ros_pkgs/include/airsim_settings_parser.h1#include "common/common_utils/StrictMode.hpp"COMMENT
LOW…irsim_ros_pkgs/include/pd_position_controller_simple.h1#ifndef _PID_POSITION_CONTROLLER_SIMPLE_H_COMMENT
LOWHelloDrone/main.cpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWGazeboDrone/src/main.cpp21#include <gazebo/transport/transport.hh>COMMENT
LOWHelloSpawnedDrones/HelloSpawnedDrones.cpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/sensors/gps/GpsSimple.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/sensors/distance/DistanceSimple.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOW…ib/include/sensors/magnetometer/MagnetometerSimple.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/sensors/barometer/BarometerSimple.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/safety/SafetyEval.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/Settings.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/AirSimSettings.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/WorkerThread.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/StateReporterWrapper.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/Common.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOW…rLib/include/common/common_utils/ScheduledExecutor.hpp1// Copyright (c) Microsoft Corporation. All rights reserved.COMMENT
LOWAirLib/include/common/common_utils/prettyprint.hpp1// Copyright Louis Delacroix 2010 - 2014.COMMENT
LOWAirLib/include/common/common_utils/json.hpp41COMMENT
LOWAirLib/include/common/common_utils/json.hpp61COMMENT
LOWAirLib/include/common/common_utils/json.hpp201#if defined(JSON_HEDLEY_STRINGIFY_EX)COMMENT
LOWAirLib/include/common/common_utils/json.hpp221#if defined(JSON_HEDLEY_CONCAT3_EX)COMMENT
LOWAirLib/include/common/common_utils/json.hpp241#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR)COMMENT
LOWAirLib/include/common/common_utils/json.hpp261 #undef JSON_HEDLEY_GNUC_VERSION_CHECKCOMMENT
LOWAirLib/include/common/common_utils/json.hpp281 #undef JSON_HEDLEY_MSVC_VERSION_CHECKCOMMENT
LOWAirLib/include/common/common_utils/json.hpp301COMMENT
LOWAirLib/include/common/common_utils/json.hpp321#if defined(JSON_HEDLEY_INTEL_CL_VERSION)COMMENT
LOWAirLib/include/common/common_utils/json.hpp341#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp361#elseCOMMENT
LOWAirLib/include/common/common_utils/json.hpp381#if defined(JSON_HEDLEY_ARM_VERSION)COMMENT
LOWAirLib/include/common/common_utils/json.hpp401#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp421#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp441#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp461#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp481COMMENT
LOWAirLib/include/common/common_utils/json.hpp501#if defined(JSON_HEDLEY_TI_CL6X_VERSION)COMMENT
LOWAirLib/include/common/common_utils/json.hpp521#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp541#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp561#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp581#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp601COMMENT
LOWAirLib/include/common/common_utils/json.hpp621#if defined(JSON_HEDLEY_COMPCERT_VERSION)COMMENT
LOWAirLib/include/common/common_utils/json.hpp641#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp681#if defined(JSON_HEDLEY_GCC_VERSION_CHECK)COMMENT
LOWAirLib/include/common/common_utils/json.hpp701#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp721#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE)COMMENT
LOWAirLib/include/common/common_utils/json.hpp741 (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \COMMENT
LOWAirLib/include/common/common_utils/json.hpp761 #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute)COMMENT
LOWAirLib/include/common/common_utils/json.hpp781 #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)COMMENT
LOWAirLib/include/common/common_utils/json.hpp801COMMENT
LOWAirLib/include/common/common_utils/json.hpp821 #undef JSON_HEDLEY_HAS_EXTENSIONCOMMENT
LOWAirLib/include/common/common_utils/json.hpp841#if defined(__has_extension)COMMENT
LOWAirLib/include/common/common_utils/json.hpp861#elseCOMMENT
LOWAirLib/include/common/common_utils/json.hpp881#endifCOMMENT
LOWAirLib/include/common/common_utils/json.hpp921#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0)COMMENT
559 more matches not shown…
Unused Imports174 hits · 174 pts
SeverityFileLineSnippetContext
LOW…rsim_tutorial_pkgs/scripts/multi_drone_json_creator.py4CODE
LOWPythonClient/multirotor/external_physics_engine.py1CODE
LOWPythonClient/multirotor/set_fog.py1CODE
LOWPythonClient/multirotor/pause_continue_drone.py1CODE
LOWPythonClient/multirotor/line_of_sight.py1CODE
LOWPythonClient/multirotor/line_of_sight.py4CODE
LOWPythonClient/multirotor/line_of_sight.py5CODE
LOWPythonClient/multirotor/line_of_sight.py6CODE
LOWPythonClient/multirotor/line_of_sight.py7CODE
LOWPythonClient/multirotor/line_of_sight.py8CODE
LOWPythonClient/multirotor/survey.py1CODE
LOWPythonClient/multirotor/disarm.py1CODE
LOWPythonClient/multirotor/add_drone.py1CODE
LOWPythonClient/multirotor/add_drone.py5CODE
LOWPythonClient/multirotor/add_drone.py6CODE
LOWPythonClient/multirotor/set_trace_line.py14CODE
LOWPythonClient/multirotor/box.py1CODE
LOWPythonClient/multirotor/box.py4CODE
LOWPythonClient/multirotor/point_cloud.py2CODE
LOWPythonClient/multirotor/point_cloud.py6CODE
LOWPythonClient/multirotor/manual_mode_demo.py4CODE
LOWPythonClient/multirotor/manual_mode_demo.py7CODE
LOWPythonClient/multirotor/manual_mode_demo.py8CODE
LOWPythonClient/multirotor/teleport.py1CODE
LOWPythonClient/multirotor/opencv_show.py4CODE
LOWPythonClient/multirotor/orbit.py1CODE
LOWPythonClient/multirotor/drone_stress_test.py1CODE
LOWPythonClient/multirotor/stability_test.py2CODE
LOWPythonClient/multirotor/stability_test.py6CODE
LOWPythonClient/multirotor/navigate.py3CODE
LOWPythonClient/multirotor/navigate.py9CODE
LOWPythonClient/multirotor/navigate.py11CODE
LOWPythonClient/multirotor/hello_drone.py1CODE
LOWPythonClient/multirotor/multi_agent_drone.py6CODE
LOWPythonClient/multirotor/takeoff.py1CODE
LOWPythonClient/multirotor/reset_test_drone.py1CODE
LOWPythonClient/multirotor/drone_lidar.py4CODE
LOWPythonClient/multirotor/drone_lidar.py8CODE
LOWPythonClient/multirotor/arm.py1CODE
LOW…thonClient/multirotor/vehicleframe_lidar_pointcloud.py53CODE
LOW…thonClient/multirotor/vehicleframe_lidar_pointcloud.py55CODE
LOWPythonClient/multirotor/clock_speed.py1CODE
LOWPythonClient/multirotor/set_wind.py1CODE
LOWPythonClient/multirotor/gimbal.py1CODE
LOWPythonClient/multirotor/path.py1CODE
LOWPythonClient/multirotor/land.py1CODE
LOWPythonClient/multirotor/state.py1CODE
LOWPythonClient/multirotor/sensorframe_lidar_pointcloud.py53CODE
LOWPythonClient/car/pause_test.py6CODE
LOWPythonClient/car/car_monitor.py1CODE
LOWPythonClient/car/car_stress_test.py1CODE
LOWPythonClient/car/runtime_car.py1CODE
LOWPythonClient/car/car_time_of_day.py4CODE
LOWPythonClient/car/car_time_of_day.py8CODE
LOWPythonClient/car/car_time_of_day.py11CODE
LOWPythonClient/car/car_time_of_day.py12CODE
LOWPythonClient/car/car_lidar.py4CODE
LOWPythonClient/car/car_lidar.py8CODE
LOWPythonClient/car/reset_test_car.py1CODE
LOWPythonClient/car/hello_car.py1CODE
114 more matches not shown…
Self-Referential Comments8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMros2/src/airsim_ros_pkgs/launch/airsim_node.launch.py50 # Create the launch description and populateCOMMENT
MEDIUMPythonClient/imitation_learning/Cooking.py197 # Create the next chunkCOMMENT
MEDIUMPythonClient/computer_vision/capture_ir_segmentation.py50 #Create a rotation matrix from camera pitch, roll, and yaw angles.COMMENT
MEDIUMPythonClient/reinforcement_learning/dqn_drone.py12# Create a DummyVecEnv for main airsim gym envCOMMENT
MEDIUMPythonClient/reinforcement_learning/dqn_drone.py47# Create an evaluation callback with the same env, called every 10000 iterationsCOMMENT
MEDIUMPythonClient/reinforcement_learning/dqn_car.py12# Create a DummyVecEnv for main airsim gym envCOMMENT
MEDIUMPythonClient/reinforcement_learning/dqn_car.py46# Create an evaluation callback with the same env, called every 10000 iterationsCOMMENT
MEDIUMPythonClient/environment/light_control.py16# Create a new light at the same poseCOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHLogViewer/LogViewer/Properties/Settings.Designer.cs3// This code was generated by a tool.COMMENT
HIGHLogViewer/LogViewer/Properties/Resources.Designer.cs3// This code was generated by a tool.COMMENT
Hyper-Verbose Identifiers13 hits · 13 pts
SeverityFileLineSnippetContext
LOW…o/Assets/AirSimAssets/Scripts/Utilities/DataManager.cs9 public class DataManager {CODE
LOW…c/airsim_ros_pkgs/launch/dynamic_constraints.launch.py5def generate_launch_description():CODE
LOW…src/airsim_ros_pkgs/launch/static_transforms.launch.py6def generate_launch_description():CODE
LOWros2/src/airsim_ros_pkgs/launch/airsim_node.launch.py12def generate_launch_description():CODE
LOWros2/src/airsim_ros_pkgs/launch/rviz.launch.py8def generate_launch_description():CODE
LOW…m_ros_pkgs/launch/position_controller_simple.launch.py5def generate_launch_description():CODE
LOW…ch/airsim_with_simple_PD_position_controller.launch.py9def generate_launch_description():CODE
LOWPythonClient/imitation_learning/Generator.py69 def random_transform_with_states(self, x, seed=None):CODE
LOWPythonClient/imitation_learning/Generator.py340 def _get_batches_of_transformed_samples(self, index_array):CODE
LOWPythonClient/computer_vision/image_benchmarker.py73 def start_img_benchmark_thread(self):CODE
LOWPythonClient/computer_vision/image_benchmarker.py80 def stop_img_benchmark_thread(self):CODE
LOWPythonClient/computer_vision/capture_ir_segmentation.py10def rotation_matrix_from_angles(pry):CODE
LOW…onClient/computer_vision/create_ir_segmentation_map.py65def get_new_temp_emiss_from_radiance(tempEmissivity, response):CODE
TODO Padding7 hits · 10 pts
SeverityFileLineSnippetContext
LOW…ity/AirLibWrapper/AirsimWrapper/Source/WorldSimApi.cpp139 //TODO: implement weather for UnityCOMMENT
LOW…ity/AirLibWrapper/AirsimWrapper/Source/WorldSimApi.cpp145 //TODO: implement weather for UnityCOMMENT
LOW…or/firmwares/simple_flight/AirSimSimpleFlightBoard.hpp88 //TODO: implement thisCOMMENT
LOW…nclude/vehicles/car/firmwares/physxcar/PhysXCarApi.hpp65 //TODO: implement arming for carCOMMENT
LOWAirLib/include/physics/FastPhysicsEngine.hpp214 //TODO: implement better rolling frictionCOMMENT
LOW…real/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp397 //TODO: implement this for linuxCOMMENT
LOW…real/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp404 //TODO: implement this for linuxCOMMENT
Deep Nesting7 hits · 7 pts
SeverityFileLineSnippetContext
LOWros/src/airsim_ros_pkgs/scripts/car_joy.py65CODE
LOWPythonClient/multirotor/orbit.py154CODE
LOW…thonClient/multirotor/vehicleframe_lidar_pointcloud.py66CODE
LOWPythonClient/multirotor/sensorframe_lidar_pointcloud.py66CODE
LOWPythonClient/imitation_learning/Generator.py249CODE
LOW…onClient/reinforcement_learning/airgym/envs/car_env.py46CODE
LOW…Client/reinforcement_learning/airgym/envs/drone_env.py148CODE
Excessive Try-Catch Wrapping3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMPythonClient/imitation_learning/Cooking.py50 print('Error: Image', image_name, 'is not RGB.')CODE
MEDIUMPythonClient/imitation_learning/Cooking.py73 print("Error: Your splitting ratio should add up to 1")CODE
MEDIUMPythonClient/imitation_learning/Cooking.py129 print('Error: attempting to add image {0} twice.'.format(image_filepath))CODE
AI Structural Patterns5 hits · 5 pts
SeverityFileLineSnippetContext
LOWPythonClient/imitation_learning/Generator.py13CODE
LOWPythonClient/imitation_learning/Generator.py55CODE
LOWPythonClient/imitation_learning/Generator.py187CODE
LOWPythonClient/computer_vision/capture_ir_segmentation.py138CODE
LOWPythonClient/airsim/types.py293CODE
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/multirotor/firmwares/mavlink/MavLinkMultirotorApi.hpp2031 //every time we return status update, we need to check if we have new dataCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWPythonClient/multirotor/set_wind.py32# Set wind to 0COMMENT