# RÉPERTOIRE — asset provenance

Every file under `assets/` is listed here. Downloaded 8 Oct 2026. No AI-generated imagery, no stock people, no
hotlinking: the page loads everything from this folder.

## Photographs: removed from this copy

The concept as first shown carried three photographs supplied by the original client for that review only (two
portraits and a bow hand). They were never licensed for reuse, so this portfolio copy does not ship them: the files are
deleted and the Musicians section is set as words alone. Every image left in this folder is a render of the page's own
scene or a CC0 texture listed below.

## Stone (CC0)

| Files | Source | Author / licence | What was done |
|---|---|---|---|
| `tex/statuario-band.{webp,jpg}` | ambientCG **Marble012**, 2K-JPG, colour map — https://ambientcg.com/view?id=Marble012 | ambientCG (Lennart Demes), **CC0 1.0** | Graded from its blue-grey ground to a warm white Statuario: luminance curve with a soft shoulder (veins kept mid-grey, ground lifted to ~0.95), cool tint in the veins, warm tint in the ground. Then cropped to rows 448–960 of the 2048 tile (the ledge's lip and top use only that band), 2048×512. The engine maps it with repeat.y 4 so one long vein crosses the ledge's front lip like a drawn line. Normal/roughness/displacement maps were not used (honed = matte, constant roughness 0.42). |
| `tex/nero-512.{webp,jpg}` | ambientCG **Marble017**, 1K-JPG, colour map — https://ambientcg.com/view?id=Marble017 | ambientCG, **CC0 1.0** | Resized 1024 → 512. Darkened in the material (multiplied by #8C8C8C, roughness 0.42) for a honed Nero Marquina bookend. |

The marble is only ever the ledge the scores stand on and a bookend; it is never a background behind text.

## Type (SIL Open Font License 1.1), self-hosted

| Files | Family | Source | Licence |
|---|---|---|---|
| `fonts/archivo-latin{,-ext}.woff2` | Archivo (variable: wdth 62–125, wght 100–900) | Google Fonts (fonts.gstatic.com, v25) | OFL — `fonts/OFL-Archivo.txt` (Omnibus-Type) |
| `fonts/bodoni-moda-{,italic-}latin{,-ext}.woff2` | Bodoni Moda (variable: opsz 6–96, wght 400–900, roman + italic) | Google Fonts (v28) | OFL — `fonts/OFL-BodoniModa.txt` (indestructible type) |

latin-ext is included for the Ř in Dvořák. Production faces we would license instead: Saol Display or PP Eiko
(Didone wordmark, captions, spines) and PP Neue Montreal (functional sans).

## Code

| Files | Source | Licence |
|---|---|---|
| `vendor/three/three.module.min.js`, `vendor/three/three.core.js` | three.js **0.186.1** (r186), jsDelivr `npm/three@0.186.1/build/` | MIT — `vendor/three/LICENSE` |
| `vendor/three/RoundedBoxGeometry.js`, `vendor/three/RoomEnvironment.js` | three.js 0.186.1 `examples/jsm/…` | MIT |

`three.core.min.js` is stored as `three.core.js` because jsDelivr's minified `three.module.min.js` imports
`./three.core.js`. Resolved through an import map in `index.html`.

`js/shelf.js` and `js/scores.js` are VX code for this concept, evolved from an earlier VX shelf prototype ("Concept C").
The covers carry the concept's own name, drawn in canvas; the font-loading sample string covers every glyph it needs.

## Generated in the page / rendered by us

| Files | What |
|---|---|
| `stills/shelf-{desk,tab,phone}-*.{avif,webp,jpg}` | Re-rendered 10 Oct 2026 after the metronome's pendulum was added (only the desk framing shows the metronome; the tab and phone renders came out pixel-identical to round 3). The hero's first frame: rendered from the 3D scene itself at each reference framing (2560×1600, 1536×2048, 1170×2532), then encoded at two widths. The live canvas re-maps its camera exactly the way `object-fit: cover` crops these, so the still and the first live frame match at any window size. **These renders contain the composer names on the spines**; the names are also real HTML (button labels) and listed in the image's alt text. |
| (runtime, no file) | Cloth weave, spines, covers, endpapers, title page, plaster, window-light cookie, ebonised metronome and its tempo scale: drawn procedurally in canvas by `js/scores.js` and `js/shelf.js`. No third-party imagery. The metronome's pendulum (steel rod, nickel weight, pivot) is modelled geometry; its shadow on the tempo scale is computed in the scale's shader from the key light's real position (`pendulumShadow()` in `js/shelf.js`), and the scale's recess darkening is a small procedural ambient-occlusion canvas. |

Composer names are used as names only (all public domain). The ensemble/occasion each score opens to is an
illustrative pairing.
