# Assets and licenses

- **ChatGPT sign-in logo**: original black vector from [OpenAI's approved sign-in button assets](https://developers.openai.com/assets/siwc/sign-in-buttons/chatgpt-logo-black.svg), used with the white [Sign in with ChatGPT button format](https://developers.openai.com/siwc/website). ChatGPT and its logo are OpenAI trademarks.

- **Three.js r180** and **HDRLoader**: [Three.js](https://threejs.org/), MIT. Full license: `vendor/THREE-LICENSE.txt`. Downloaded from the pinned `three@0.180.0` package on jsDelivr.
- **Forest Ground 04** diffuse and OpenGL normal maps, 1K: [Poly Haven asset](https://polyhaven.com/a/forest_ground_04), by Rob Tuytel (photography/processing), Rico Cilliers (minor adjustment). [CC0](https://polyhaven.com/license). Files renamed to `ground-color.jpg` and `ground-normal.jpg`.
- **Brown Mud** diffuse and bump maps, 2K: [Poly Haven asset](https://polyhaven.com/a/brown_mud), by Rob Tuytel, [CC0](https://polyhaven.com/license). Stored as `soil-color.jpg` and `soil-height.jpg`. Used for freshly exposed earth and loose soil with world-space projection.
- **Bamboo surface photograph**: [Close-up texture of weathered bamboo poles](https://commons.wikimedia.org/wiki/File:Close-up_texture_of_weathered_bamboo_poles.jpg), by A S M Jobaer, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). The 3840 px photograph is stored unmodified as `bamboo-photo.jpg`. The game samples a strip of one culm using UV coordinates, rotates its grain along the stems, derives subtle bump/roughness from it, and applies green or brown material tints. The photograph and these photo-derived material adaptations remain under CC BY-SA 4.0; attribution does not imply endorsement.
- **Bark Brown 02** diffuse, OpenGL normal and roughness maps, 2K: [Poly Haven asset](https://polyhaven.com/a/bark_brown_02), by Rob Tuytel, [CC0](https://polyhaven.com/license). Stored as `root-color.jpg`, `root-normal.jpg`, and `root-roughness.jpg`. Used as fine woody surface detail on curved rhizomes, crowns, and feeder roots; this is bark photography, not a scan of a bamboo root system.
- **Spruit Sunrise** HDRI, 1K: [Poly Haven asset](https://polyhaven.com/a/spruit_sunrise), [CC0](https://polyhaven.com/license). Stored as `sunrise.hdr`.
- **Panda fur texture**: `panda-fur.png`, an AI-generated ivory fur material created for this game with OpenAI image generation, not animal photography. Used with black/white vertex coloration and subtle relief on the procedural panda models.
- **Equipment material atlas**: `tool-materials.png`, an AI-generated four-surface atlas made with the built-in OpenAI image generation tool. Hickory wood grain, brushed steel, pebbled rubber and powder coating are cropped at load time into shared albedo and relief maps. Neutral surfaces are exposure-normalized before tinting. This is generated material artwork, not a photographic scan. Exact prompt: `assets/tool-materials-prompt.txt`.
- **Bamboo leaf atlas**: `bamboo-leaves.png`, four photorealistic leaf variants generated for this game with OpenAI image generation. This is an AI-generated botanical texture, not a photograph or a scan. Original transparent atlas retained; used on curved leaf meshes with material-based dry-leaf coloration.
- Bamboo, roots, foliage geometry, tools, grass, props, particles, textures not listed above, interface icons, were generated in code for this game.
- **Zen music**: six original compositions and procedural Web Audio instruments created for this game: Bamboo at Dawn, Rain on Stone, Lantern Pond, Moss Temple, Cloud Terrace, and Moonlit Rill. No external music recordings or streaming services.
- **Machine textures**: [Metal Plate 02](https://polyhaven.com/a/metal_plate_02) and [Rubber Tiles](https://polyhaven.com/a/rubber_tiles), [Poly Haven CC0](https://polyhaven.com/license), 1K albedo, OpenGL normal, and roughness maps in `machine-metal-*` / `machine-rubber-*`. The metal photograph is cropped and exposure-normalized at load time for painted surfaces. These photographs provide surface detail; the vehicle models are original procedural geometry.
- **Impact and footstep Foley**: [Kenney Impact Sounds](https://kenney.nl/assets/impact-sounds), CC0. Eighteen unmodified OGG variations of wood, plank, mining, metal and grass sounds. License: `assets/sfx/KENNEY-LICENSE.txt`.
- **Human exertion voice**: [EFFORT SOUNDS (Male)](https://opengameart.org/content/effort-sounds-male-audio-pack), recorded by **VoiceBosch**, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). Clips 01, 02, 03, 04, 05, 07, 08, 14, 15 have been high-pass filtered, loudness normalized and converted to mono MP3; the adapted recordings remain CC BY-SA 4.0. Files: `assets/sfx/effort-*.mp3`. Attribution does not imply endorsement.
- **Chainsaw**: [Chainsaw.wav by esperri](https://freesound.org/people/esperri/sounds/118972/), CC0. Uses seconds 3–8 of the public high-quality preview, normalized and encoded as `chainsaw.mp3`.
- **Diesel motor**: [Marine diesel engine by AugustSandberg](https://freesound.org/people/AugustSandberg/sounds/264864/), CC0. Uses seconds 5–13, normalized and encoded as `diesel.mp3`; the original is a marine engine recording used here for the tracked vehicles.
- **Vacuum**: [Vacuum Cleaner 02 - short by Huminaatio](https://freesound.org/people/Huminaatio/sounds/159346/), CC0. Uses seconds 6–12, normalized and encoded as `vacuum.mp3`.
- **Fire**: [Fire Crackling by AntumDeluge](https://opengameart.org/content/fire-crackling/), CC0, `flame.ogg`. Decoded loop seams are crossfaded in the browser.
- Additional whooshes, lasers, explosion layers, whistle, birds and feedback tones are original procedural effects.
- **Garden monk announcer**: 38 original English lines synthesized offline with [Qwen3-TTS VoiceDesign](https://github.com/QwenLM/Qwen3-TTS), using the [MLX 4-bit model](https://huggingface.co/mlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-4bit) (Apache 2.0) through [MLX Audio](https://github.com/Blaizzy/mlx-audio). The fictional character is a warm, elderly Chinese garden monk speaking clear English with a gentle accent. This is AI-generated speech from a written character description, not a recording or imitation of a real person. The 24 kHz mono MP3 files retain their generated pitch and timing. Catalog: `announcer-lines.js`; prompt and generation metadata: `assets/voice/monk/render-manifest.json`; reproducible build script: `scripts/render-announcer.py`. Previous announcer recordings remain in the source archive but are excluded from the public game.

All assets are served locally. No third-party network requests occur during play.
