AeroCraft Flight Lab 3D: software and asset notices

The aircraft profiles and procedural scenery are original AeroCraft educational engineering estimates. The synthetic agricultural ground, oak foliage and archived day/night countryside panoramas were created using OpenAI ImageGen. The active scene uses the cropped sky of the CC0 Rural Asphalt Road panorama, sampled once around the horizon. Night lighting and stars are rendered procedurally. The ground and local flying field are blended on one opaque surface, with separate instanced trees and houses. Ground is flat, object placements are approximate and obstacle collision is not simulated. The scenery does not depict a surveyed real location. The aircraft profiles have no experimental flight-test validation.

Paper Flight adaptation

Default release and natural free flight adapt the user-provided GoPlayCenter Paper Flight source, inspected at commit af48715a70fb70942f6a77038a391b1dc9a70bcc. This is a tuned TypeScript model with AeroCraft aircraft profiles, not the JSBSim engine. The advanced setup selector loads JSBSim instead. Full source provenance and adaptations are documented in the repository docs/flight-lab/PAPER_FLIGHT.md.

JSBSim 1.2.4

Copyright JSBSim contributors. JSBSim is distributed under the GNU Lesser General Public License 2.1. The compiled engine is loaded separately from the application. The MIT license of the JavaScript wrapper does not replace the LGPL license of JSBSim.

Rebuilding and replacing the LGPL component

Use Node.js 20+, Git, CMake 3.20+ and an activated Emscripten SDK. Extract the two archives. Place the JSBSim source contents in the SDK directory's vendor/jsbsim directory. From the SDK directory run the commands below. Source archives omit Git submodule metadata, so initialize a local Git directory for the patch script and call CMake directly.

npm ci
git init vendor/jsbsim
bash scripts/apply-jsbsim-patches.sh
npm run generate:bindings
emcmake cmake -S cmake -B build/wasm \
  -DJSBSIM_SOURCE_DIR="$PWD/vendor/jsbsim" \
  -DJSBSIM_WASM_BINDINGS="$PWD/generated/FGFDMExecBindings.cpp" \
  -DCMAKE_BUILD_TYPE=Release
cmake --build build/wasm --target jsbsim_wasm --parallel

After AeroCraft's flight:runtime generation step, replace public/flight-lab/runtime-v1/jsbsim_wasm.mjs and jsbsim_wasm.wasm with the files from build/wasm. Keep the JSBSim property and binding interface compatible. Native source changes do not require replacing the application code. A browser developer can also use a local resource override to load a modified module for debugging. These rebuild instructions were inspected against the included scripts, but a byte-identical independent native rebuild has not been performed.

MIT components

Photographic sky

Rural Asphalt Road by Alexander Scholten, provided freely by Poly Haven under CC0 1.0. The distributed 2K and 4K WebP images are resized derivatives of the tonemapped panorama. No subscription or runtime API is required. The sky is scenery and is not forecast data.

Asset provenance, hashes and source URLs