USMC CH-53E Super Stallion (162479, 164780) corresponding source - GTLA, 2026-09-20

This is the source for the two helicopter models GTLA shows for the Marine
Corps CH-53E Super Stallions with Bureau Numbers 162479 and 164780. It holds
what you need to build the published models again, and to change them.

WHERE IT COMES FROM. The models are adapted from FlightGear's CH-53E Super
Stallion: https://github.com/FGMEMBERS/ch53e
Its authors, as the aircraft's own files name them:
  Josh Babcock        the original CH-53E: model, panels, instruments and
                      systems (ch53e-set.xml)
  Pierre Duval        the detailed 2015 exterior model this conversion uses
  Richard Harrison    merged the two models, splash screen, rotor folding and
                      cockpit lighting effects (2015-2016)
  StuartC (FGUK)      flight-model tuning, and scaled the exterior model to
                      the revised dimensions
  RedTwo              flight-model tuning
  Voodoo da Vinci     interior shading
ch53eSuperStallion-set.xml lists Pierre Duval, Josh Babcock and StuartC as its
authors; Read-Me.txt and changelog tell the rest. We downloaded the archive on
2026-09-17 (SHA-256 bef441572243ee84cabd0aefef84df06eeab200a07834d78251a8bb0a90abb4c);
outputs/CH53E-family/source-manifest.json records it.

LICENCE. ch53eSuperStallion-set.xml declares the aircraft "GPL v2" and names
no later version, and the archive ships the GPL version 2 text as COPYING.
GTLA's adaptation (the conversion, the repainted airframe and the rotor and
beacon animation) is distributed on the same terms: the GNU General Public
License, version 2 only. COPYING in this archive is that same text, unchanged.
No warranty. Service markings and Bureau Numbers identify the aircraft shown
and imply no endorsement by the United States Marine Corps or the Department
of Defense.

WHAT THE BUILD READS FROM UPSTREAM. Four files, included unchanged under
outputs/CH53E-family/source/ch53e-master/Models/:
  ch53e.ac            the whole aircraft as an AC3D mesh
  TextureMain.png     the airframe paint atlas; texture.py repaints it into
                      each aircraft's own airframe.png, and build.py uses
                      that instead
  TailGrids.png       a grille pattern for one tail panel
  Transp-Multi.png    coloured swatches for two light lenses
ac_reader.py reads ch53e.ac as plain data. No FlightGear script is run.
Read-Me.txt, changelog, ch53e-set.xml, ch53eSuperStallion-set.xml and COPYING
are included because they name the authors and the licence. The rest of the
FlightGear aircraft (flight model, scripts, sounds, cockpit instruments,
liveries) is flight-simulator material this conversion never reads; it is
available from the page above.

LAYOUT. Paths are the ones the scripts expect, from this archive's root:
  outputs/CH53E-family/source/ch53e-master/...  the upstream files above
  outputs/CH53E-family/ac_reader.py        reads AC3D files as data
  outputs/CH53E-family/texture.py          repaints the airframe atlas for
                                           each aircraft: paints out the
                                           atlas's made-up squadron markings
                                           (YN on the tail, 05, HMH-123) and
                                           letters the Bureau Number
  outputs/CH53E-family/build.py            Blender: imports ch53e.ac, splits
                                           body, main rotor and tail rotor,
                                           sizes the blades, adds the tail
                                           beacon and writes exports/raw.glb
  outputs/CH53E-family/finalize.mjs        adds the rotor and beacon
                                           animation, compresses, validates,
                                           and writes the standard and mobile
                                           files
  outputs/CH53E-family/verify.mjs          checks blades, pivots and animation
  outputs/CH53E-family/package-source.py   the script that made this archive
  outputs/CH53E-family/source-manifest.json  the upstream archive's checksum
  outputs/CH53E-family/README.md           the builder's notes, written while
                                           the models were still under review
  outputs/CH53E-family/aircraft/<BuNo>/    config.json, wiring.json (see
                                           PACKED SETTINGS FILES below),
                                           geometry-build.json, the identity
                                           record, and textures/airframe.png,
                                           the paint we made
  package.json                             the Node packages and versions used

REBUILD. You need Blender 5.2, Python 3 with Pillow, and Node 22 or later.
From this archive's root:
  npm install
  python3 outputs/CH53E-family/texture.py      (optional: repaints both
                                                airframe.png files)
  blender --background --factory-startup --python outputs/CH53E-family/build.py -- 162479
  blender --background --factory-startup --python outputs/CH53E-family/build.py -- 164780
  node outputs/CH53E-family/finalize.mjs 162479 164780
  node outputs/CH53E-family/verify.mjs
build.py writes aircraft/<BuNo>/exports/raw.glb, a Blender file
(aircraft/<BuNo>/<BuNo>.blend), geometry-build.json and three review
pictures. finalize.mjs writes exports/<BuNo>-standard.glb and
exports/<BuNo>-mobile.glb and records their checksums in config.json and
validation.json. verify.mjs checks them. build.py, finalize.mjs and verify.mjs
also carry a Super Puma branch (they are shared with GTLA's AS332 family); it
does nothing for these two aircraft and reads nothing in this archive.

THE CHANGES FROM THE FLIGHTGEAR MODEL ARE ALL IN CODE. texture.py paints the
fictional squadron markings out of the atlas by filling each one from the
paint around it, and letters each Bureau Number. build.py leaves out the
rotor blur discs and simulator light billboards, levels the main blades,
sets the main rotor to 24.08 m (79 ft), keeps the tail rotor's 20-degree cant,
tints the cockpit glass, and adds the tail beacon. There are no hand edits.

WHY THERE IS NO BLENDER FILE. build.py starts from an empty scene and saves
<BuNo>.blend as one of its outputs; nothing in the build reads it back. It
holds nothing that build.py and the files here do not make, so build.py is the
form to edit, and the .blend is left out.

CHECKED. On 2026-09-20 we unpacked this archive into an empty folder, with
no Blender file anywhere, and rebuilt both aircraft from it alone, using the
commands above (Blender 5.2.0, Python 3.14 with Pillow 12.3, Node 24, and
the Node packages at the versions package.json lists). texture.py repainted
both airframe.png files byte for byte. In the rebuilt standard and mobile
files for both aircraft, every mesh, texture, animation and node position
matched the published copies except one: the small red beacon light on the
tail. Its 224 triangles came out the same, facing the same way, but Blender
listed them in a different order, so its compressed bytes differ. Blender does that on its own from run to run. Run on our own
2026-09-20 Blender exports, finalize.mjs reproduces the published files byte
for byte (before stamping).

FONT. texture.py letters the Bureau Number with Arial from
/System/Library/Fonts/Supplemental/Arial.ttf, a proprietary macOS font that is
not included. Use any font you have in its place (change that one line), or
skip texture.py and build with the airframe.png files already included.

IDENTITY RECORDS. build.py and finalize.mjs check each aircraft's saved
identity record (references/military-identity.txt: the public Mode S and
Bureau Number sources) by SHA-256 before they run, so both are included.

PACKED SETTINGS FILES. Each aircraft's config.json and wiring.json here are
copies of our own with our internal review notes taken out: the record of the
go-ahead to commit the files, the flag that recorded whether public use had
been approved, the review-stage build status, and the review notes about
approval and deployment (one note, "HD not generated", is kept without its
approval remark). Those notes were about our review, not the models. None of
the scripts here reads them, and package-source.py refuses to pack if one ever
does, so the build works exactly as before. Every setting the scripts read is
the same as in our build inputs, and our build inputs themselves are
unchanged.

NOT INCLUDED: reference photographs, the proprietary font, the Blender files
(see above), raw and rollback exports, the downloaded upstream archive itself
(the files the build uses are included unchanged), review pictures, logs, and
the parts of the FlightGear aircraft this conversion never reads.

PUBLISHED FILES. The finished models are not repeated here. They are served at
  https://gtla.live/models/162479-ch53e.glb          standard
  https://gtla.live/models/mobile/162479-ch53e.glb   phones
  https://gtla.live/models/164780-ch53e.glb          standard
  https://gtla.live/models/mobile/164780-ch53e.glb   phones
There are no HD files for these aircraft. SHA256SUMS-published.txt lists the
checksums of the files as served. Those copies carry an attribution and
provenance stamp in the JSON part of the file only.
MODEL-BIN-CHUNK-SHA256.txt lists the checksum of each file's binary part (the
geometry, textures and animation), which the stamp never changes.

SHA256SUMS lists every other file in this archive.
