# Credits

Every external asset used by the game. All are CC0 (public domain) or CC-BY (free for commercial use with credit, given here).
Run `npm run fetch-assets` and `npm run fetch-models` to download them, `npm run models` to build the compressed game files, and
`npm run credits` to regenerate this file from the download records.

## 3D models

### Kenney (CC0 1.0, public domain) — https://kenney.nl

| Pack | Used for | Source |
|---|---|---|
| nature-kit | Trees, rocks, plants and flowers | https://kenney.nl/assets/nature-kit |
| city-kit-suburban | Houses and garden trees | https://kenney.nl/assets/city-kit-suburban |
| city-kit-commercial | Village shops | https://kenney.nl/assets/city-kit-commercial |
| city-kit-industrial | Hangars, control tower, tanks, containers, wind turbines | https://kenney.nl/assets/city-kit-industrial |
| car-kit | Cars, trucks, tractors, fire engine | https://kenney.nl/assets/car-kit |
| pirate-kit | Sailing ships and rowing boat | https://kenney.nl/assets/pirate-kit |

### Individual models (Poly Pizza, https://poly.pizza)

| Model | Author | License | Used for | Source |
|---|---|---|---|---|
| Small Airplane | Vojtěch Balák | CC-BY 3.0 | Player aircraft (trainer), parked aircraft | https://poly.pizza/m/7cvx6ex-xfL |
| Big Barn | Quaternius | CC0 1.0 | Farm barn | https://poly.pizza/m/q1N3xn2SpC |
| Small Barn | Quaternius | CC0 1.0 | Farm barn | https://poly.pizza/m/aTcDP7UERC |
| Open Barn | Quaternius | CC0 1.0 | Farm shed / barn | https://poly.pizza/m/ZIdWHxYsUv |
| Silo | Quaternius | CC0 1.0 | Farm silo | https://poly.pizza/m/5GhLrv5Ce3 |
| Small Farm | Quaternius | CC0 1.0 | Farm building | https://poly.pizza/m/nELNHkk0Uh |
| Pickup Truck | Quaternius | CC0 1.0 | Airfield service truck | https://poly.pizza/m/qn4grQgHm8 |
| Boat | Quaternius | CC0 1.0 | Fishing boat | https://poly.pizza/m/5UEl54KsuC |
| Small Ship | Quaternius | CC0 1.0 | Small ship | https://poly.pizza/m/W2vMzztgIi |
| Flying seagull | Poly by Google | CC-BY 3.0 | Gulls | https://poly.pizza/m/6Tpj_vcWP3f |

CC-BY 3.0 models (credit required): "Small Airplane" by Vojtěch Balák; "Flying seagull" by Poly by Google.

The models were merged, welded and compressed (Meshopt) for the game; the aircraft were additionally split into body, propeller, gear and anchor parts. Colours of some nature models were adjusted at load time.

## HDRI (image-based lighting)

| Asset | Author | Source | License |
|---|---|---|---|
| Qwantani Late Afternoon (Pure Sky), 2k HDR | Greg Zaal (photography), Jarod Guest (processing) | https://polyhaven.com/a/qwantani_late_afternoon_puresky | CC0 |

## Terrain and aerial imagery (the game world)

| Data | Use | Source | Licence |
|---|---|---|---|
| swissALTI3D, 2 m elevation model | Terrain heights (averaged to 8 m, resampled to 12.7 m) | https://www.swisstopo.admin.ch/en/height-model-swissalti3d | swisstopo free geodata: commercial use and redistribution allowed with source credit |
| SWISSIMAGE 10 cm, 2 m product | Ground colour of the whole map; forest map derived from it | https://www.swisstopo.admin.ch/en/orthoimage-swissimage-10 | same |

Required credit, shown in the game menu: **"Terrain and aerial imagery © swisstopo"** (Federal Office of Topography swisstopo).
Terms: https://www.swisstopo.admin.ch/en/terms-of-use-free-geodata-and-geoservices. Downloaded with scripts/fetch-swiss.mjs from the
open STAC API (https://data.geo.admin.ch/api/stac/v0.9/); area: Meiringen / Bernese Oberland, 52 x 52 km around Meiringen Air Base.
Runway coordinates of Meiringen (LSMM): OurAirports public-domain data (https://ourairports.com/data/).

## Ground detail textures

Poly Haven (https://polyhaven.com), 1k, CC0, encoded to KTX2. They only add fine brightness detail near the camera.

| Use | Poly Haven asset | Author | License |
|---|---|---|---|
| Grass detail | rocky_terrain_02 | Amal Kumar | CC0 |
| Rock detail | rock_wall_02 | Rob Tuytel | CC0 |
| Tarmac (apron, taxiway, roads) | asphalt_02 | Rob Tuytel | CC0 |

Page for each: `https://polyhaven.com/a/<asset>`. The old Lofoten map (AWS Terrain Tiles) and its dirt, snow and sand textures are no longer shipped.

## Music

Kevin MacLeod (https://incompetech.com), licensed under Creative Commons: By Attribution 4.0 (https://creativecommons.org/licenses/by/4.0/):

| Track | Used for | Source |
|---|---|---|
| Atlantean Twilight | Menus | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Atlantean%20Twilight.mp3 |
| Ascending the Vale | Light-aircraft flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Ascending%20the%20Vale.mp3 |
| Heroic Age | Cobalt Shrike flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Heroic%20Age.mp3 |
| Dreamlike | Menus | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Dreamlike.mp3 |
| Windswept | Light-aircraft flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Windswept.mp3 |
| Floating Cities | Light-aircraft flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Floating%20Cities.mp3 |
| Crossing the Chasm | Light-aircraft flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Crossing%20the%20Chasm.mp3 |
| Hero Down | Cobalt Shrike flights | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Hero%20Down.mp3 |
| Peaceful Desolation | Calm station (menus) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Peaceful%20Desolation.mp3 |
| Meditation Impromptu 01 | Calm station (menus) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Meditation%20Impromptu%2001.mp3 |
| Ether Vox | Calm station (menus) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Ether%20Vox.mp3 |
| Carefree | Uplifting station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Carefree.mp3 |
| Wallpaper | Uplifting station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Wallpaper.mp3 |
| Easy Lemon | Uplifting station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Easy%20Lemon.mp3 |
| Bright Wish | Uplifting station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Bright%20Wish.mp3 |
| Celtic Impulse | Celtic station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Celtic%20Impulse.mp3 |
| Achaidh Cheide | Celtic station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Achaidh%20Cheide.mp3 |
| Skye Cuillin | Celtic station | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Skye%20Cuillin.mp3 |
| Five Armies | Adventure station (Cobalt Shrike) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Five%20Armies.mp3 |
| Prelude and Action | Adventure station (Cobalt Shrike) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Prelude%20and%20Action.mp3 |
| Adventure Meme | Adventure station (Cobalt Shrike) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Adventure%20Meme.mp3 |
| Pamgaea | Adventure station (Cobalt Shrike) | https://incompetech.com/music/royalty-free/mp3-royaltyfree/Pamgaea.mp3 |

All pieces were levelled to one loudness and re-encoded with Blender (scripts/blender/optimise_music.py): the first eight at 128 kbps, the fourteen added in 1.23.3 at 96 kbps. The originals are in assets-src/music-original/ and assets-src/music-original-2/. In the game the pieces are grouped into four stations (Calm, Uplifting, Celtic, Adventure); "Auto" picks by situation.

Credited in the game's Audio settings. Engine, wind, actuator and interface sounds are synthesised in the game (src/audio/).

## Created in this project

Amber Finch, Moss Lark and Cobalt Shrike: original, fictional designs modelled entirely in code (src/aircraft/light.js, shrike.js). Alpine trees (spruce, fir, larch, beech) and airfield buildings are procedural (src/world/trees.js, scenery.js).

Cobalt Shrike (the fighter): original, fictional design modelled entirely in code (src/aircraft/shrike.js), including its paint schemes, panel lines, stencils and the fictional Amber Skies emblem. No third-party geometry, textures or real national insignia.


Tree sprites for distant forest, crop-row texture, runway markings, windsock stripes: drawn in code (no external source).

## Software libraries

| Library | License |
|---|---|
| three.js | MIT |
| postprocessing (pmndrs) | Zlib |
| n8ao | ISC |
| meshoptimizer | MIT |
| glTF-Transform (build tool) | MIT |
| Vite | MIT |
| ktx2-encoder (build tool, wraps Basis Universal) | MIT; Basis Universal: Apache 2.0 |
| Basis Universal transcoder (from three.js, public/basis/) | Apache 2.0 |

## Additional high-resolution terrain imagery

SWISSIMAGE © swisstopo. The Meiringen flight corridor uses 25 cm/pixel WMS exports, reduced to 50 cm/pixel on High. The underlying SWISSIMAGE product is 10 cm in major valleys and 25 cm in the Alps. Source: https://www.swisstopo.admin.ch/en/orthoimage-swissimage-10; service: https://docs.geo.admin.ch/visualize-data/wms.html. Exact export bounds and URLs are retained in `assets-src/swiss/fine/provenance.json`.

The Ultra distant atlas is resampled directly from the original cached 2 m SWISSIMAGE product; it does not claim 25 cm coverage outside the downloaded flight corridor. The existing swisstopo credit is displayed in the menu.

## Retired

The seven low-poly airframes of 1.8-1.12 (Moss Lark, Ember Swift, Tide Heron, Cloud Kite, Copper Kestrel, Atlas Tern, Silver Martin) were retired in 1.13; Moss Lark returns with a new detailed model. The Small Airplane model above is still shipped in aircraft-trainer.glb (used on the old island map only).
