# PSTAR asset credits and reproducibility

The shared Billy Bishop Toronto City Airport scene uses mapped runway, taxiway,
apron, shoreline and building footprints. Remote fur-farm and closure exercises
are fictional. Aircraft, scanned vegetation and surfaces, photographed sky and
lighting are served from local files.

## Airport geography — OpenStreetMap contributors, ODbL-1.0

Map data © [OpenStreetMap contributors](https://www.openstreetmap.org/copyright).
The [source package](assets/sources/billy-bishop/README.md) contains the downloaded
extract, transformed layout, exact checksums, license and rebuild script.
[Source audit](assets/sources/billy-bishop/README.md) records published runway
dimensions, landmark references and approximate building-height assumptions.
Original facade materials, runway markings and remote teaching props are authored
for this game. Tree placement excludes water, pavement and the airport boundary.

## Aircraft — FlightGear C172P team, GPL-2.0

Original: [c172p-team/c172p](https://github.com/c172p-team/c172p), commit
`11f1c2e3d215a19a7acb9b6b817f706fd348d1d1`, accessed 2026-10-03.
The authors and contributions are preserved in the upstream README inside the
[source archive](assets/sources/c172p-source.zip). The model and its modified GLB
remain under [GPL version 2](assets/licenses/C172P-GPL-2.0.txt).

`c172p.glb` uses the original `Models/c172-common.ac`, exterior/interior texture
atlases, normal maps and livery. Changes: coordinate conversion, smooth-normal/UV
preservation, removal of interaction hotspots, tie-downs, duplicate interior glass
and glow-only sprites, material adaptation to glTF PBR, a separate propeller pivot,
static-part batching, and WebP texture packing. The runtime adds transparent glass
and a subtle rotating-propeller disk. No aircraft geometry was decimated.

The source archive contains the native AC3D model, input textures, paint kit,
README, license, model XML and conversion scripts. Keep the source archive,
author notices, modification history and GPL license with distributed versions.

## Remote hangar and retained model sources — FlightGear Scenemodels, GPL-2.0-or-later

- [Hangar General Aviation, model 2798](https://scenery.flightgear.org/models/2798):
  Thomas Polzer, based on a model by Torsten Dreyer.
- [ESMQ Tower, model 9035](https://scenery.flightgear.org/models/9035): Tomas Åkesson.
- [ESMQ Terminal, model 9034](https://scenery.flightgear.org/models/9034): Tomas Åkesson.

Accessed 2026-10-03. The catalog expressly licenses model data under GPL-2.0+;
see the [recorded notice](assets/licenses/Scenery-GPL-notice.txt). The
[airport source archive](assets/sources/airport-source.zip) preserves the original
AC3D, PNG and XML data, attribution, GPL text, conversion and packing scripts.
Changes: glTF coordinate conversion, ground-centred origins, physically based
materials, image packing, and scaled/rotated placement. The hangar is used in the
remote exercise area. The ESMQ tower and terminal are retained source assets and
are not loaded into the Billy Bishop scene. Models and derivatives retain
GPL-2.0-or-later; keep their source and notices with distributed versions.

## Environment — Poly Haven, CC0

All assets below are [CC0](https://polyhaven.com/license); the
[CC0 legal text](assets/licenses/CC0-1.0.txt) is bundled. Credits are retained even
though attribution is not required by CC0.

| Original asset | Artist | Use and modifications |
| --- | --- | --- |
| [Tree Small 02](https://polyhaven.com/a/tree_small_02) | Rico Cilliers | Actual modeled branches/leaves and scanned PBR maps. Separate near/mid GLBs, intact-leaf thinning and bark detail reduction. Distant views rendered from the full original tree into a four-view transparent atlas. |
| [Grass Ground](https://polyhaven.com/a/grass_ground) | Charlotte Baglioni | Grass color, normal and roughness maps; resized/packed to WebP. |
| [Asphalt 02](https://polyhaven.com/a/asphalt_02) | Rob Tuytel | Runway/taxiway/apron color, normal and roughness maps. |
| [Aerial Rocks 02](https://polyhaven.com/a/aerial_rocks_02) | Rob Tuytel | Retained legacy terrain maps; not loaded by the Billy Bishop scene. |
| [Aerial Grass Rock](https://polyhaven.com/a/aerial_grass_rock) | Rob Tuytel | Retained legacy field maps; not loaded by the Billy Bishop scene. |
| [Corrugated Iron 03](https://polyhaven.com/a/corrugated_iron_03) | Charlotte Baglioni | Retained legacy surface maps; not loaded separately by the Billy Bishop scene. |
| [Kloofendal 48d Partly Cloudy (Pure Sky)](https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky) | Greg Zaal (original), Jarod Guest (sky edits) | 2K HDR environment lighting and 4K photographed sky backdrop. |

The tree atlas was rendered locally from the licensed full-detail model. Water
uses an original ripple bump pattern and the photographed environment. Audio is
synthesized locally.

## Retained legacy terrain source — USGS 3DEP via Terrain Tiles

[Terrain Tiles](https://registry.opendata.aws/terrain-tiles/) tile
[`terrarium/10/165/360.png`](https://elevation-tiles-prod.s3.amazonaws.com/terrarium/10/165/360.png),
accessed 2026-10-03. United States 3DEP data courtesy of the U.S. Geological Survey;
public-domain source. [Provider attribution and source details](assets/licenses/Terrain-Tiles-attribution.md).

This raster belongs to the earlier fictional world. It is retained for asset
reproducibility and is not loaded or used as Toronto terrain.

## Rebuild and verification

The [provenance manifest](assets/sources/provenance.json) records exact upstream
model/image URLs, source checksums, authors, license and pinned aircraft commit.
`assets/sources/runtime-sha256.json` records the distributed runtime files.

Rebuild inputs are stored locally under `asset-work/source/`; that evaluation
cache is not runtime content. The aircraft input is also preserved in the bundled
source archive. Poly Haven originals remain available at the exact URLs and MD5s
in the manifest.

1. Extract the aircraft source archive so `asset-work/source/c172p/Models/` exists.
2. Extract the airport source archive into `asset-work/source/scenery/` (preserving
   its model-number directories). Download the recorded Poly Haven tree 1K glTF and dependencies, 2K surface maps,
   2K HDR sky, tone-mapped sky JPEG, and the recorded Terrarium elevation PNG.
3. Run Blender with `--background --disable-autoexec --python` for each of
   `scripts/pstar-import-aircraft.py`, `scripts/pstar-import-environment.py`, `scripts/pstar-import-buildings.py`, and
   `scripts/pstar-bake-tree.py`. These are original conversion scripts; downloaded
   assets are read as data. Tested with Blender 3.4.1.
4. Run `.venv/bin/python scripts/pstar-pack-assets.py` (Pillow required), then the
   site's normal build and PSTAR tests. Packing retains full aircraft geometry,
   caps color maps at 2K, ground normal maps at 1K, sky backdrop at 4K and shares
   tree maps between LODs. The source archive must be refreshed after converter edits.

Three.js r170, BufferGeometryUtils, GLTFLoader and RGBELoader retain the
[Three.js Authors' MIT license](vendor/THREE-LICENSE). Loader changes only redirect
module imports to the locally vendored r170 build. The unused legacy Pixi package
retains its original `vendor/LICENSE`.

Question text/keyed answers remain Transport Canada TP 11919, seventh edition,
December 2022. All 185 active questions, answer order and official reference links
are unchanged by the asset replacement.
