# Visualisation for MARSH This is a visualisation module for [Modular Architecture for Reconfigurable Simulation of Helicopters](https://marsh-sim.github.io/). The project is configured to display cockpit instruments with [lidia](https://pypi.org/project/lidia) Python package. Named in this order so not everything starts with the same word. ## Usage The application will attempt to start in VR, but if it fails it will display the default pilot viewpoint looking forward. ### Parameters These can be modified over MAVLink, for example using MARSH Manager. Example changes to `NAV_OFS_` parameters to start in given positions: - Sidestep, vertical repositioning: all default - Accelerate/decelerate: `HDG` = -90 - Hover maneuver: `X` = 50, `Y` = 50 - Start of slalom: `HDG` = -90, `X` = -100, `Y` = 300 #### NAV_OFS_HDG Displayed heading relative to default position, in degrees. #### NAV_OFS_X Starting position offset, forward in default orientation, in meters. #### NAV_OFS_X Starting position offset, right in default orientation, in meters. #### LOCAL_FRAME_LAT Latitude of local coordinate frame origin when using messages with global position, in degrees. #### LOCAL_FRAME_LON Longitude of local coordinate frame origin when using messages with global position, in degrees. ## Development The asset files like textures and models are very big, so the project also uses [Git Large File Storage](https://git-lfs.com/). Once installed, it should work correctly with usual `git` commands but you may need to run this if you install it after cloning the repository: ```sh git lfs pull ``` This repository uses [Git Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules), to get all the code you need to run either: ```sh git clone --recurse-submodules
# Or at any later point git submodule update --init --recursive ``` Using Godot v4.4. Install SCons with `pipx install scons`. You will need a C++ compiler, you might have one already on Linux, see below for Windows, otherwise in [Godot documentation](https://docs.godotengine.org/en/stable/contributing/development/compiling/index.html). For updating MAVLink generator, you additionally `pip install future`. It is recommended to install any packages in a [virtual environment](https://docs.python.org/3/library/venv.html), for example: ```sh python3 -m venv venv source venv/bin/activate pip install future ``` Some files are generated, run the following commands on first setup and when dependencies change: ```sh godot --dump-extension-api # after updating Godot python update_mavlink.py # after updating MAVLink dialect python update_addons.py # after changing any addon submodules scons compile_commands # after modifying SConstruct cd project/addons/gdcef; python build.py ``` ### Windows setup The most convenient way of getting a C++ compiler is via the LLVM-MinGW project (by the way, it optimizes the binary more). Download the `llvm-mingw-...-msvcrt-x86_64.zip` from the [Releases page](https://github.com/mstorsjo/llvm-mingw/releases). Unzip the archive to some location you like, and add its `bin` folder to `Path` using the "Edit environment variables for your account" program. ### Build To build the GDExtension binary run SCons in the repository root, the default arguments have been added to the file. ```sh scons ``` When building for Windows with MinGW-LLVM, you need to [select this compiler](https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_windows.html#selecting-a-compiler): ```powershell scons platform=windows use_mingw=yes use_llvm=yes ``` ## Roadmap - Try to have some acceptable setup for Varjo even without the tracker - Rework the fly area - Make it bigger - Keep it square to avoid assymetric geometry - Don't use the flat plane, just flatten the terrain - Make the terrain mostly green, but add some small patches of different color - Fix z-figthing when looking at the runway from afar - Reduce pixel artifacts - Adjust antialiasing - Ensure there are mipmaps and they're used