The Lampbearer — HD-2D (Lemo-Opuscar demo)
LemoLab × Claude Opus 5.5

All imagery is generated by code in this folder: three.js scenes built from primitives, pixel textures and
pixel characters drawn procedurally per pixel (px.js, kit.js, chars.js, forest_art.js, cliff.js, harbor.js),
custom shaders for sky, sea, beams and post-processing. No photos, no 3D asset packs, no AI-generated images.
Story, characters (Wren, the Old Keeper), place names (Greywater, the Whisperwood, the Gale Steps) and all
UI artwork are original.

Music
- "Precipice" by Scott Buckley — https://www.scottbuckley.com.au/library/precipice/
  License: Creative Commons Attribution 4.0 International (CC BY 4.0) — https://creativecommons.org/licenses/by/4.0/
  Source file: music/src/sb_precipice.mp3 (direct link:
  https://www.scottbuckley.com.au/library/wp-content/uploads/2021/01/sb_precipice.mp3)
  Changes: cut, re-timed and level-automated for this film by music/edit.py (edit list in music/CUES.md).
  Attribution is shown on screen in the title card and in music/CREDITS.txt.

Fonts (SIL Open Font License 1.1; woff2 latin subsets from Google Fonts, license texts in fonts/)
- Cinzel — The Cinzel Project Authors (Natanael Gama), fonts/h0.woff2 (500), fonts/h1.woff2 (700), fonts/OFL-Cinzel.txt
- Cormorant Garamond — The Cormorant Project Authors (Christian Thalmann), fonts/h2–h4.woff2 (italic 500, 500, 600),
  fonts/OFL-CormorantGaramond.txt

Voices
- Kokoro-82M (Apache-2.0) via kokoro-onnx; model files in core/tts/ (kokoro-v1.0.onnx, voices-v1.0.bin).
  Voices: af_heart (narrator), bm_george (the Old Keeper).
- Speech check: faster-whisper base.en (MIT).

Sound effects and ambience
- Synthesized in mix.py with core/audio/sfx.py (noise, filters, envelopes). No recorded samples.

Code dependencies
- three.js r170 (MIT), playwright-core (Apache-2.0), numpy / scipy / soundfile / librosa (BSD/ISC), ffmpeg (LGPL/GPL build).

Reference (grammar only, nothing copied): the HD-2D look of Octopath Traveler (Square Enix × Acquire).
