# TUTTI: assets and provenance

Everything below was downloaded or made on 9–10 Oct 2026. The page loads only same-origin files (no hotlinks, no CDNs).
No image is AI-generated and no person appears anywhere. The page's pictures are renders of its own scene; the only
photographs inside that scene are museum photographs of instruments (CC0), cut out and laid where players would leave them.

## Instruments (`inst/`), The Met Open Access, CC0

Each photograph shows the instrument standing, front view, on a seamless grey sweep. Lying on its back, an instrument
seen from straight above shows exactly that face, so the photograph is its top view. Cut out with `tools/cutout.py`:
a quadratic background model in Lab fitted to the borders, foreground from chroma and darkness against it, the largest
component with holes filled; the body's lower edge found from the width profile and everything below a fitted curve
removed (the photographed support and contact shadow); axis fitted and turned upright; a soft matte from a signed
distance (eroded 1 px, 1.2 px feather) with the colour at the edge replaced by the nearest interior colour (no grey
fringe); cropped and resampled to **1 px per mm** from the Met's own dimensions; an outline polygon (mm) saved for the
shadow caster. WebP q88, alpha q100.

| File | Object (The Met) | Image | Scaled to | What else was done |
|---|---|---|---|---|
| `violin-francesca` | *"Francesca" Violin*, Antonio Stradivari, 1694, acc. 34.86.2a, Bequest of Annie Bolton Matthews Bryant, 1933. https://www.metmuseum.org/art/collection/search/503010 | DP167848 | 584 mm overall (Met: 58.4 cm) | — |
| `violin-gragnani` | *Violin*, Antonio Gragnani, 1783, acc. 1997.147, Gift of Evelyn Stark, 1997. https://www.metmuseum.org/art/collection/search/500905 | DP230469 | 356 mm body (the record's "Total L. 33 cm; String L. 60 cm" look transposed; 60 cm overall matches the photograph) | — |
| `violin-antonius` | *"Antonius" Violin*, Antonio Stradivari, 1711, acc. 34.86.1a, Bequest of Annie Bolton Matthews Bryant, 1933. https://www.metmuseum.org/art/collection/search/503008 | DP105130 | 584 mm overall (Met: 58.4 cm) | — |
| `viola-gemunder` | *Viola*, August Martin Gemünder, 1893, acc. 45.71.3, Gift of A. Gemunder & Sons, 1945. https://www.metmuseum.org/art/collection/search/504403 | DP-21004-001 | 670 mm overall (Met: 67 cm) | — |
| `viola-banks` | *Viola*, Benjamin Banks, 1791, acc. 1979.177, Gift of Dorothy and Robert Rosenbaum, 1979. https://www.metmuseum.org/art/collection/search/503931 | DP-37178-001 | 388 mm body (Met: 38.8 cm) | — |
| `cello-vuillaume` | *Violoncello*, Jean Baptiste Vuillaume, mid-19th c., acc. 1984.114.1, Gift of Dr. Peter Blos, 1984. https://www.metmuseum.org/art/collection/search/505461 | DT7705 | 755 mm body (Met: 75.5 cm); 1236 mm with the endpin collar | The photographed endpin assembly and its support cut away; a retracted endpin collar (ebony, steel stub, rubber tip, 28 mm across) drawn in `draw_collar()`. |
| `cello-gemunder` | *Violoncello*, August Martin Gemünder, 1893, acc. 45.71.4, Gift of A. Gemunder & Sons, 1945. https://www.metmuseum.org/art/collection/search/504404 | DP-35296-001 (an additional view on the same record) | 750 mm body (Met: 75 cm); 1219 mm overall (Met: 123.3 cm) | Extended endpin cut away; the same drawn collar. |
| `bass-cristofori` | *Double Bass*, Bartolomeo Cristofori, 18th c., acc. 1980.112, The Met (Purchase, Crosby Brown Collection and funds from various donors, 1980). https://www.metmuseum.org/art/collection/search/503176 | DP217153 (an additional view on the same record) | 960 mm body (Met: 96 cm), then **shown at 1.077× in the scene (184 cm overall)** so it stands for a modern three-quarter bass; the Cristofori itself is 171 cm. Disclosed here and in `assets/js/tutti.js`. | The baroque turned foot cut away; the drawn collar. Mirrored (UV flip) on some stools for variety. |

Not used after review: the "Gould" Stradivari (DT669) and the 1669 Amati (DP230434) violins, both in baroque setups with
inlaid fingerboards and tailpieces that would look wrong in a modern orchestra.

Each instrument in the scene also has an invisible shadow caster (its outline extruded from the seat or floor to its
real thickness: violin 5.8 cm, viola 6.6, cello 17, bass 23) and a contact-occlusion footprint (its own matte, blurred
by the mip chain) so it sits on the floor instead of floating.

## Floor and paper (`tex/`)

| File | Source | Author / licence | What was done |
|---|---|---|---|
| `stone-detail-1600.webp` (415 KB) | Poly Haven *Marble 01* (a honed limestone), 2K diffuse JPG: https://polyhaven.com/a/marble_01 (covers 1.5 m) | Rob Tuytel, CC0 | The scan's own joints found (black-hat + long horizontal/vertical openings) and inpainted (OpenCV Telea); each of its slabs normalised to a common tone and de-gradiented first, so no ghost of the old slabs survives; luminance through the page's filter; very large-scale fall-off divided out; stored as relative detail (0.5 ± variation × 2.2); 2048 px resampled to 1600 px, WebP q76. The shader lays its own 80 cm slabs: each samples its own window of the scan with a quarter turn and a mirror, has its own tone (±5.5 %), and 2–3.4 mm joints with their own grout darkness, antialiased by the pixel footprint. |
| `wear-1k.webp` | Poly Haven *Concrete Floor 02*, 2K diffuse JPG: https://polyhaven.com/a/concrete_floor_02 | Rob Tuytel, CC0 | Luminance, band-passed (σ 6–90 px) to traffic-and-cleaning scale, normalised; applied at ±3 % over 7.3 m. |
| `part-0.webp` … `part-3.webp` | IMSLP #01298: J. S. Bach, Cello Suite No. 1, BWV 1007, from the *Bach-Gesellschaft Ausgabe* Band 27.1 (Leipzig: Breitkopf & Härtel, 1879), file `IMSLP01298-BWV1007.pdf`, https://imslp.org/wiki/Cello_Suite_No.1_in_G_major,_BWV_1007_(Bach,_Johann_Sebastian) | Public domain (1879 engraving; IMSLP scan, public domain in the US) | Pages 59–63 rasterised at 150 dpi, centre-cropped to a 23.2 × 30.5 cm part page, 2 px/mm, paper tone and slight edge toning, ink at 10 %; four two-page spreads with a soft crease at the spine. On the stands they are illegible texture, as parts are from above. |

## Modelled here (no source files)

Orchestra chairs (upholstered trapezoid seat with a welt, curved back tilted 9°, 19 mm steel frame, glides), bass stools,
Manhasset-type symphony stands (50.8 × 31.8 cm desk, shelf and lip, flanges, telescoping column, three legs; three
height/tilt settings, as players leave them), bows (cambered stick, hair ribbon, frog, head), the music's paper curl,
the fabric mottling normal map, and the hall environment used for reflections. All in `assets/js/tutti.js`.

## Stills (`img/`)

Rendered from this page's own scene (the harness `tools/harness.html` via `tools/shoot.cjs`, SwiftShader, at each
frame's reference aspect: wide 2560 × 1600, tall 1170 × 2532), so the still and the live canvas crop alike. Encoded with
sharp 0.35.4 (`tools/encode.cjs`): AVIF q62, WebP q84, mozjpeg q84.

- `tutti-p0-wide-2560/1280`, `tutti-p0-tall-1170/780`: the first frame (three empty chairs). First paint and the no-WebGL view.
- `tutti-{trio,quartet,chamber,full}-wide-1600`, `-tall-780`: the four ensembles, for reduced motion (and no WebGL).
- `tutti-detail-1200/600`: the trio's violin on its chair, close (Ensembles section).
- `tutti-open-1200/600`: the second violins with one chair left open (For musicians).

## Fonts (`fonts/`)

| File | Source | Licence | What was done |
|---|---|---|---|
| `instrument-sans-latin.woff2` (57 KB) | Instrument Sans, Google Fonts (fonts.gstatic.com v4), Latin subset, variable wdth 75–100, wght 400–700 | SIL OFL 1.1, The Instrument Sans Project Authors (`OFL-InstrumentSans.txt`) | None |
| `newsreader-italic-380.woff2` (21 KB) | Newsreader Italic, Google Fonts (v26), Latin | SIL OFL 1.1, The Newsreader Project Authors (`OFL-Newsreader.txt`) | Instanced at weight 380, optical size 24, subset to Latin-1 plus typographic punctuation and ē ō ā (fontTools). The one caption. |

Production faces we would license: Neue Haas Grotesk Display (wordmark and functional type) and GT Sectra Fine Italic (the caption).

## Code (`vendor/`)

| Folder | Package | Licence |
|---|---|---|
| `three-0.185.1/` | three@0.185.1 from `npm pack` (`three.module.min.js`, `three.core.min.js`, `addons/utils/BufferGeometryUtils.js`) | MIT, three.js authors (`LICENSE.txt`) |

## Reference photographs (`tools/refs/`, never published)

Studied for seating, poses and light before and during the build; not shipped and not shown on the page:
Wikimedia Commons *Orchestre symphonique (dessus)* (CC BY-SA 4.0), *Music stands and musical instruments on TAPO Music
Salon stage* (CC0), Kleinhans Music Hall set (CC BY-SA 2.0), Staatsarchiv Freiburg *Donaueschinger Musiktage … von oben*
(CC BY 4.0); via Openverse (Flickr): Wonderlane *Instruments resting from a long hard recital, cellos on the carpet* (CC BY),
dalbera *Les contrebasses (grande salle de la Philharmonie de Paris)* (CC BY), dalioPhoto *100 ft over orchestra*
(CC BY-NC-ND), Central Washington University *Music orchestra overhead* (CC BY-NC-ND), benjgibbs *The Orchestra's Chairs*
(CC BY), and others listed in `tools/refs/ids.txt`. The side-by-side realism sheets (`tools/refs/compare-*.jpg`) sit with them for the same reason. What they taught: cellos and basses are laid on the floor beside
the player, violins and violas on the seat; stands carry two-page parts and often a bow on the shelf; pale stage floors
and black chairs and stands; soft overhead or window light with dark contact shadows.

## Copy

"Tutti: Italian for “all”; in a score, the passages where the whole ensemble plays together" is a dictionary fact. The
page's other lines are illustrative copy for a concept; its contact links point to hello@example.com.

## Bytes (measured 10 Oct 2026, `tools/budget.cjs`, resource timing from the local server, no compression)

Desktop 1440 × 900: **first view 2.22 MB** in 30 files (stone 406 KB, three.js 733 KB, the eight instruments 468 KB,
parts 300 KB, first still 147 KB, fonts 78 KB); scrolling the whole page adds 0.06 MB (two lazy stills). Phone 390 × 844:
2.13 MB first view. The published folder (page + `assets/`, every still variant included) is 7.2 MB. Budgets: 4 MB first
view, 12 MB total. A host with gzip/brotli roughly halves the JavaScript.

## Test hooks and tools (`tools/`, not published)

`window.__renderAt(p)` and `?renderAt=p` pin the signature; `?still` shows the fallback still alone (for the still-vs-live
diff); `?motion=reduce` forces the static page. `harness.html` + `shoot.cjs` render the scene alone (also `?view=`,
`?open=`, `?debug=1` for the occlusion buffer, `?debug=2` for the key light's shadows alone); `page.cjs` (page captures),
`strip.cjs` (signature strip), `stillshot.cjs` + `diff.py` (fallback vs live: mean 1.65/255 desktop, 1.53/255 phone after a
5 × 5 blur), `keys.cjs` / `picker.cjs` (tab order, focus, the radiogroup), `cutout.py` (instruments), `encode.cjs`,
`compare.py` / `pair.py` (realism sheets against `refs/`, before/after pairs in `shots/compare-*`).
