V-22 Osprey corresponding source and models — GTLA, 2026-09-12

Source: FlightGear V-22 Osprey, https://github.com/FGMEMBERS/V-22
Authors: Emmanuel Baranger (original 3D model), Oliver Thurau (3D model
improvements, FDM/XML), Detlef Faber (FDM and texture), Maik Justus (FDM and
animations), onox (FBW, autopilot, systems, documentation). See AUTHORS.

GPL v2, as declared by the upstream repository's COPYING file, which governs the
AC3D geometry this conversion derives from. See COPYING.
GTLA geometry, artwork and animation adaptations are distributed under GPL v2.
No warranty. Trademarks identify depicted aircraft and imply no endorsement.

LICENCE VERSION, stated plainly. The upstream repository also contains
mv22-set.xml and cv22-set.xml whose headers declare GPL v3 or later. Those are
simulator configuration for the flight model and systems; they are not
corresponding source for a geometry conversion and are not redistributed here,
so this archive is unambiguously v2 rather than a mix of two versions. If you
need those files, take them from the upstream repository under their own terms.

Reference photographs, saved identity/photo HTML and proprietary font files are
not redistributed. Blender .blend masters are not included; the geometry, UVs,
rotor rig and animation modifications all live in the scripts below.

Included: the original editable Models/v22.ac and every texture it references,
our converters, our build and artwork scripts, the per-aircraft weathered
texture sets (surface1) we authored, and the wiring values.

The compiled GLBs are NOT bundled — they are already served at
https://gtla.live/models/osprey-<BuNo>.glb (and -hd.glb, and /mobile/), and
duplicating 110 MB of them here would help nobody rebuilding. SHA256SUMS-published.txt
lists their hashes so a rebuild can be compared against what the site serves.

Rebuild from this directory (Blender 5.2, Python 3 with Pillow, Node 22):
  npm install
  blender -b -t 4 --python outputs/V22-free-trial/convert.py
  blender -b -t 4 --python outputs/V22-roster-refresh/build.py
  node outputs/V22-roster-refresh/finalize.mjs

To regenerate the weathered surface maps rather than using the provided ones,
run python3 outputs/V22-roster-refresh/artwork.py before build.py.

Rotor nodes are LeftRotor and RightRotor — three blades each, counter-rotating —
not the MainRotor/TailRotor pair used by this fleet's helicopters. Nacelles are
modelled in the hover position with gear extended; conversion and retraction
animation was not built.

Distributed GLBs also contain a JSON-only GTLA attribution/provenance stamp;
that metadata changes neither editable geometry nor the animation output.
