This project is a drone flight visualizer built with Vulkan and C++20. It provides a real-time 3D visualization of drone flight paths from a recording of a flight. It currently supports DJI flight logs but it can easily be expanded for other formats. The goal is to provide a tool that can be used to analyze drone flight paths and to help drone pilots improve their flying skills. The project is currently being developed on Windows 11 using Clang and Visual Studio 2022. It should also work on Linux and macOS but this has not been tested yet.
- CMake
- Ninja
- C++20 compiler (Clang 17 or GCC 13)
- Vulkan SDK
- Windows 11 with Clang 17 and Visual Studio 2022 MSVC v143
- Windows 11 with GCC 13 and MinGW-w64 11.0.1 (UCRT)
Building with MSVC (cl.exe
) has been proved to not work because of some issues with the CMake configuration step that tries to redefine targets twice. It hasn't been investigated further yet.
Winget is the recommended way to install packages on Windows. It is a package manager that is built into Windows 11 and can be installed on Windows 10. It is similar to apt
on Linux and brew
on macOS. It is recommended to install the packages using Winget but it is also possible to install them manually. This guide will only show how to install the packages using Winget.
- Install CMake and Ninja
winget install Kitware.CMake winget install Ninja-build.Ninja
Clang is used as the compiler and MSVC is used for linking with the Windows SDK.
- Install the Visual Studio Build Tools.
- From within the Visual Studio Installer, install the
MSVC v143
andWindows 11 SDK
packages only. - Install the LLVM toolchain for Windows
winget install LLVM.LLVM
- Add the LLVM
bin
folder to yourPATH
environment variable. - Test that Clang is installed correctly by running
clang --version
in a terminal. Remember that you need to open a new terminal after modifying thePATH
environment variable.
- Get MinGW-w64 from https://winlibs.com/
- Extract the archive to a folder of your choice, preferably without spaces, and add the
bin
folder to yourPATH
environment variable. - Test that GCC is installed correctly by running
gcc --version
in a terminal. Remember that you need to open a new terminal after modifying thePATH
environment variable. - Test that Clang is installed correctly by running
clang --version
in a terminal. Remember that you need to open a new terminal after modifying thePATH
environment variable.
The usual CMake commands can be used to build the project. Dependencies are downloaded automatically by CMake using CPM.
For example, to build the project in Debug mode using Clang, run the following commands from the root of the project:
cmake -B build -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug
cmake --build build
Binaries will be placed in the bin
folder in the root of the project.
This project is licensed under the MIT License. See the LICENSE file for details.