# Credits

The code in this repository is released under the MIT license (see `LICENSE`). The third-party
assets below keep their own licences.

## Audio: `public/audio/`

42 field recordings from [Freesound](https://freesound.org), all released under
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/). No attribution is required, but every file is
credited with its author and source link in [`public/audio/CREDITS.md`](public/audio/CREDITS.md).

Recordists: YevgVerh, straget, Alex_hears_things, chris_dagorne, bruno.auzet, felix.blume, hdfreema,
richardemoore, KaleidacousticsAudio, AugustSandberg, kyles, Pfannkuchn, 200221-WeanBekker, florianreichelt,
Nox_Sound, ryansitz, SilentStrikeZ, SecureSubset, tbsounddesigns, qubodup, blaukreuz, wormer2, roboroo,
squashy555, Soojay, coalcon, dubminister, nathankwright, SorenF109, LaScienceMusicale, KEVOY, mikewest,
tosha73, paulprit, Mrthenoronha, mwchristian95, MrFossy, BranndyBottle, JoelMcDaniel, khenshom, ramattahatta,
RatBird and Anthousai.

## Scanned beach debris: `public/models/debris/`

Photogrammetry models from [Poly Haven](https://polyhaven.com), under
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/):

- Dead Quiver Trunk
- Dead Quiver Branch 01
- Dead Quiver Branch 02
- Lambis Shell

The meshes were decimated into levels of detail, and the textures are unchanged. Details are in
[`public/models/debris/CREDITS.md`](public/models/debris/CREDITS.md).

## Vendor stalls: `public/models/props/`

Joe's fish stand and Marta's chandlery are built from [Poly Haven](https://polyhaven.com) textures and
models under [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/):

- Textures: Weathered Brown Planks, Weathered Planks, Worn Corrugated Iron, Weathered Peeling Timber
- Models: Wooden Crate 01 and 02, Wooden Bucket 01, Fish Knife, Wooden Cutting Board, Lifebuoy, Wooden
  Lantern 01, Fisherman's Hat, Wooden Table 03, Metal Jerrycan (green), Plastic Jerrycan, Life Jacket, Metal
  Toolbox, Wooden Display Shelves 01

The models were decimated and the textures downsized by `tools/props/`. The signs, the chalkboard and the
scale dial were lettered with [Permanent Marker](https://fonts.google.com/specimen/Permanent+Marker) (Apache
2.0), [Cabin Sketch](https://fonts.google.com/specimen/Cabin+Sketch) (SIL OFL 1.1) and
[Oswald](https://fonts.google.com/specimen/Oswald) (SIL OFL 1.1); the font files and their licences are in
`tools/props/fonts/`. Details are in [`public/models/props/CREDITS.md`](public/models/props/CREDITS.md). The Unity port is not included in this integration.

## Humpback whale: `public/models/whale/`

This is an original procedural model, generated by our own scripts. Its proportions follow
published humpback anatomy, and its side profile was traced from a NOAA Fisheries illustration, a
US government work in the public domain. The reference photographs used while modelling are not included.

## Characters: `public/models/characters/`

The vendors (`joe.glb`, `marta.glb`) are avatars `Wood_Male_01` and `Female_Adult_04` and their
idle, talk, wave and shrug animations from the [Microsoft Rocketbox Avatar Library](https://github.com/microsoft/Microsoft-Rocketbox)
(© Microsoft Corporation, MIT license, included as `LICENSE-Rocketbox.md`), converted with
`tools/characters/` (textures resized, animations retargeted and baked). Paper: M. Gonzalez-Franco
et al., "The Rocketbox Library and the Utility of Freely Available Rigged Avatars", Frontiers in
Virtual Reality, 2020.

The ferry and beach crowd (`crowd/*.glb`, swimwear variants in `crowd/swim/`) are Rocketbox avatars from
the same library (MIT), rebuilt by `tools/characters/build_crowd.sh` and `crowd_swim.py`.

## Original models built from code

These are generated by scripts in this repository, with no source mesh:

| Asset | Script |
|---|---|
| `public/models/beach/*.glb` (towels, umbrellas, esky, cricket set, hats and other beach props) | `tools/beach/props_build.py` |
| `public/models/birdcage.glb` | `tools/cockatoo/cage_build.py` |
| `public/models/dolphin/` (bottlenose dolphin) | `tools/wildlife/dolphin_build.py` |
| `public/rally/black_jeep.glb` (lifted black Jeep) | `tools/rally/build_black_jeep.py` |
| `public/rally/aster_rs.glb`, `support_wagon.glb`, `support_pickup.glb` (Aster RS coupe, touring wagon, utility pickup) | Blender scripts in the Rally project, synced by `tools/rally/sync.mjs` |
| The number plate model in `public/rally/` | its plate build script in `tools/rally/` |

## Fishing fork models and provenance limits

The three-boat/trap/ray features come from [smithjj/tidewater](https://github.com/smithjj/tidewater), pinned to `5fe4964c99ee91a66c6578d9f41c6c430548f39d`.
See [`assets/README.md`](assets/README.md) for source and runtime copies. Its provenance entries for the Pelagic 30, lobster traps and buoy are incomplete. Their redistribution rights have **not** been independently confirmed. The owner elected to retain these assets for a noncommercial personal site; noncommercial use itself is not a licence. The mini boat and eagle ray are described there as author-modelled; their external reference photographs are not shipped in the runtime copies. This notice does not claim that provenance review has passed.

## Fonts

[Inter](https://rsms.me/inter/), [JetBrains Mono](https://www.jetbrains.com/lp/mono/),
[Caveat Brush](https://fonts.google.com/specimen/Caveat+Brush) and [Kalam](https://fonts.google.com/specimen/Kalam) are all under the
SIL Open Font License 1.1. The browser build loads them from Google Fonts at runtime and does not ship them.

## Libraries

The SMAA area and search lookup textures (`public/textures/smaa/`) are from three.js (MIT), which ships
them from J. Jimenez et al.'s SMAA reference implementation (MIT).

[Vite](https://vite.dev) (MIT) is an npm dependency and is not vendored here.

## Techniques and references

These are published techniques. No code from the papers is included.

| Technique | Source |
|---|---|
| FFT ocean spectra | J. Tessendorf, *Simulating Ocean Water* |
| Atmosphere | S. Hillaire, *A Scalable and Production Ready Sky and Atmosphere Rendering Technique* (2020) |
| Volumetric cloud modelling | A. Schneider (Guerrilla Games), the *Nubis* talks |
| Motion blur | M. McGuire et al., *A Reconstruction Filter for Plausible Motion Blur* (2012); J. Jimenez, *Next Generation Post Processing in Call of Duty: Advanced Warfare* (2014) |
| Bloom | J. Jimenez (2014) |
| Sharpening (RCAS) | AMD FidelityFX Super Resolution 1 |
| SMAA / FXAA | J. Jimenez et al., *SMAA: Enhanced Subpixel Morphological Antialiasing* (2012); T. Lottes, *FXAA* (2009); ported from three.js' SMAANode / FXAANode (MIT) |
| Rasterized caustics | Evan Wallace's *WebGL Water* approach |
| Breaking waves | Guerrilla Games, *Horizon Forbidden West* water (SIGGRAPH 2022) |

The cloud noise, lighting and sampling scheme (`src/sky/Clouds.js`) is adapted from DRG Software Solutions'
own *Sky Pro WebGPU*. It is published here under this repository's MIT license by its copyright holder.

## Coastal road surface: `public/rally/surfaces/`

| Asset | Source | Licence |
|---|---|---|
| `asphalt_02_diff_1k.jpg`, `asphalt_02_nor_gl_1k.jpg`, `asphalt_02_rough_1k.jpg` (downsized from 2k) | Poly Haven, *Asphalt 02*: https://polyhaven.com/a/asphalt_02 (files from https://dl.polyhaven.org/file/ph-assets/Textures/jpg/2k/asphalt_02/) | CC0 1.0 |

## Pet cockatoo: `public/models/cockatoo.glb`, `public/audio/cockatoo.ogg`

- Pet cockatoo (`public/models/cockatoo.glb`): [Sulphur-Crested Cockatoo](https://sketchfab.com/3d-models/sulphur-crested-cockatoo-18fca4e421094c789c63cd78565e38b6) by [AlexGiardiniere](https://sketchfab.com/AlexGiardiniere), Sketchfab, [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Mesh and texture used verbatim; rigged for the game by `tools/cockatoo/cockatoo_import.py`.
- Squawks: [Sulphur Crested Cockatoo](https://freesound.org/s/783046/) by jacques.devosmalan@gmail.com on Freesound, CC0 1.0 (real recording, sliced by `tools/audio/build-cockatoo.mjs`).
- Visual references used to check the model (not shipped): Wikimedia Commons, "Cacatua galerita -Sydney -upper body -crest-8-3c.jpg" (CC BY-SA 2.0) and "Sulphur-crested cockatoo (Cacatua galerita galerita) Sydney.jpg" (CC BY-SA 4.0).

## Jetski, hire stand and float line: `public/models/jetski.glb`, `jetski-hire.glb`, `jetski-buoys.glb`

Original models, made in Blender by `tools/jetski/jetski_build.py` and `tools/jetski/hire_build.py` (MIT, like
the code). The "RIPTIDE RX-300" livery is invented. The decal and sign lettering is geometry set in Oswald
(`tools/props/fonts/Oswald.ttf`, SIL Open Font License). No third-party meshes or textures are used. Reference
photos from Wikimedia Commons were only looked at, not shipped (Matti Blume, CC BY-SA 4.0; Ehzeta, CC BY-SA 4.0;
Retired electrician, CC0).

## Concept GT car: `public/rally/concept_gt.glb`

| Asset | Source | Licence |
|---|---|---|
| `concept_gt.glb` (in game: Concept GT) | *CarConcept* by Eric Chadwick, © 2024 Darmstadt Graphics Group GmbH, from the Khronos glTF Sample Assets: https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/CarConcept | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) |

Modified: debadged (the Khronos and 3D Commerce logos and all textures removed, the steering-wheel emblem blanked),
re-rigged for the game's wheel pivots, recoloured with untextured materials and decimated by
`tools/rally/import_cars.py`. It keeps its original scale.
