# Architecture materials, V5

Integration: replace `dist/architecture.js` with this folder's `architecture.js`; retain existing import query strings or update them consistently with the release. The build API, collision data, landmark overrides/exclusions, spatial batches and close-detail gates are unchanged. The standalone street-material helper can select the agreed `street/adoquines`, `street/sidewalks` and `street/squares` batch names.

## Visible changes

- Warmer ochre, coral, aqua, sage, lilac and limewash pigments replace the uniformly pale palette. Deterministic variation adds small differences between buildings without consuming the existing scene RNG.
- Existing CC0 photographed plaster now contributes readable grain and restrained paint flaking, with a lightweight original weather field for gentle damp near the base and vertical rain marks. Maintained paint remains dominant; weathering is an artistic interpretation, not an inspection of individual buildings.
- Roof color and broad patchwork now retain considerably more of the actual historical aerial image. Most roofs remain cream/concrete. Warm patches come from that image; no random red roofs or invented roof tiles are added. Concrete detail is retained at close range, with a raised floor on old baked shadows.
- Window recesses are darker, shutter pigments are deeper and frames have subtle mineral variation. A material branch distinguishes blue-black glazing from iron within the existing shared batch, avoiding extra window draws.

## Provenance and limits

Existing local photographs, reused without new downloads:

- [Poly Haven White Rough Plaster](https://polyhaven.com/a/white_rough_plaster), CC0: lime-plaster grain, normal detail and sparse flaking. This is a material photograph, not a photograph of these buildings.
- [Poly Haven Concrete Floor](https://polyhaven.com/a/concrete_floor), CC0: roof surface microdetail.
- [NOAA Office for Coastal Management, Puerto Rico 2009 imagery collection](https://coast.noaa.gov/htdata/raster2/imagery/PuertoRico_2009_1421/): existing U.S. Army Corps of Engineers 2009–2010 crop, already attributed in the project. The historical roof appearance is not a contemporary survey.
- [Discover Puerto Rico, Old San Juan street photograph](https://www.discoverpuertorico.com/media/581601) and [Old San Juan landmarks](https://www.discoverpuertorico.com/article/13-old-san-juan-landmarks-you-shouldnt-miss): reference for colorful plaster, cream trim, shutters and dark openings. Reference photographs are not embedded as game assets.
- [Puerto Rico OECH, La Arquitectura Patrimonial Puertorriqueña y sus Estilos](https://docs.pr.gov/files/OECH/Publicaciones%20y%20Recursos/Libros/La%20Arquitectura%20Patrimonial%20Puertorrique%C3%B1a%20y%20sus%20Estilos.pdf): search-indexed photograph of Old San Juan residences and their aqua, lavender/red facades, tall windows, cornices and balconies. The large PDF was not fully retrieved during this pass.

Facade pigment assignment and surface aging remain original interpretations. No new model, wall, roof shape or architectural feature is introduced.

## Validation

`ARCHITECTURE-V5-VALIDATION.json` records checks against the active V4 source using the recovered OSM data and actual terrain sampler:

- Node syntax check and finite geometry checks passed.
- Exact combined byte hash for positions, normals, UVs, indices and instance transforms.
- Exact nonvisual building, anchor, collision-grid and paving fingerprints.
- 1,370 buildings; 1,358 collision buildings; 11,233 anchors; 424 collision cells; 107 detail groups.
- World bounds, landmark heights/exclusions and distance gates unchanged.
- 8,593,317 triangles, 488 mesh objects and 691,664 instances unchanged.
- 149.94 MiB GPU geometry/instance attributes unchanged; material objects 15 → 14.
- New weather field: 128 × 128 RGBA, 64 KiB before mipmaps. Plaster textures are cloned to preserve other modules' UV scale and share their existing image source.
- Build sample 3.389 → 3.517 seconds; this small difference is not a reliable performance regression measurement. No browser FPS claim is made. Shader hooks execute in Node; actual WebGL compilation and visual QA belong to integration.
- Paving and following source remain exactly unchanged except the three coordinated batch names. No Site tools, checkout edits or publication were performed.
