# CREDITS — 02-isometric 「LUMEN CITY OS / 微缩智慧城」

## Visuals
All artwork is **original code**, written for this film. There are no third-party shaders,
sprites, textures, models or stock imagery. The city — ground tiles, buildings, trees, ponds,
roads, cars, train, drones, wind turbines, data streams, the floating-island hull and the
isometric title — is drawn procedurally every frame with the 2D canvas API in
`parts/film.mjs`, using a hand-written true-isometric projection
(`u = (x−y)·cos30, v = (x+y)·sin30 − z`, orthographic, no vanishing point).

No real brand or logo appears. “LUMEN” and “LUMEN CITY OS” are invented names.

## Fonts
Only operating-system fonts are used; no font file is vendored or redistributed.

| use | family | notes |
|---|---|---|
| isometric title `LUMEN CITY OS` | Helvetica Neue → Arial → system-ui | macOS system font (Arial for other hosts) |
| Chinese subtitle | PingFang SC → Hiragino Sans GB → Songti SC → system-ui | macOS system fonts |

Latin title text is therefore rendered with the host system typeface under a normal
commercial OS licence. No OFL/Apache font file ships with the demo.

## Libraries
- `shared/ease.mjs` (project toolkit: easing, seeded `mulberry32`, value noise, canvas helpers)
  — part of the MG-15 harness, not a third-party dependency.
- `shared/audio.py` (project toolkit: dependency-free synthesis) — used to render the score.
- **No** GSAP / three.js / any npm package is used, vendored, or fetched at render time.

## Sound
Entirely synthesised from scratch at 48 kHz with `shared/audio.py` (sine/FM plucks, sub/kick
thuds, filtered-noise whooshes and risers, bells, hats, blips). No samples, loops, or recordings
from any source. The score and every sound effect are generated deterministically by
`audio.py` from the cue sheet in that file.

## Assets summary
- Images / video / models: none (all procedural)
- Fonts: none bundled (system fonts)
- Audio samples: none (all synthesised)
- Licences required: none beyond the host OS fonts already installed
