# Plaza de Armas fountain — original procedural interpretation

Asset: `plaza-fountain.js`, exporting `createPlazaFountain(THREE, materials = {})`.
Location supplied by integration: longitude −66.11668, latitude 18.465288.

## Reference evidence

- Daderot, *Plaza de Armas fountain – San Juan, Puerto Rico – DSC07112.JPG*, self-photographed 22 October 2011, released by its author into the public domain. Inspected the actual Commons photo in the browser. It clearly shows a low tan circular masonry basin, wide rounded coping, four separate pale figures on rectangular piers at its perimeter, and a low central bowl with an octagonal body. [Reference photograph and license](https://commons.wikimedia.org/wiki/File:Plaza_de_Armas_fountain_-_San_Juan,_Puerto_Rico_-_DSC07112.JPG).
- Daderot, *DSC07110.JPG*, 22 October 2011, identifies the Summer sculpture and documents the 19th-century sculptures. Author's public domain dedication. [Figure reference metadata](https://commons.wikimedia.org/wiki/File:Plaza_de_Armas_fountain_-_San_Juan,_Puerto_Rico_-_DSC07110.JPG).
- Waymarking user neoc1, *Four Seasons Fountain*, posted 8 February 2013. Reports a 25-foot tan basin, four marble figures, inward arcing jets and a central water spray. This is a visitor report, not a survey or official dimension. Used only as an approximate scale cross-check: 25 ft = 7.62 m. [Visitor description](https://www.waymarking.com/waymarks/WMGB12_Four_Seasons_Fountain_San_Juan_Puerto_Rico).

## What is established and what is interpreted

No dimensions were surveyed or directly measured. The construction is an artistic reconstruction for a real-scale traversal scene.

| Feature | Model value | Status |
| --- | ---: | --- |
| Main circular coping outside diameter | 7.78 m | Interpreted; close to visitor's approximate 7.62 m diameter |
| Maximum footprint including piers and grille | 8.158 × 8.130 m | Exact generated mesh bounding box; historical measurement unknown |
| Outer rim height | 0.78 m | Interpreted from the reference photo |
| Main water surface | 0.47 m above ground | Interpreted |
| Central bowl outer diameter | 1.80 m | Interpreted from photographic proportions |
| Central stone bowl upper lip | 1.085 m above ground | Interpreted |
| Four sculpture bases | 1.034 m above ground | Interpreted |
| Sculpture height | about 1.77 m | Interpreted, matching an approximately life-size classical silhouette |
| Tallest solid point | 2.810 m | Exact generated mesh bounding box |
| Ground | local y = 0 | Exact model convention |

## Originality and visual treatment

All geometry is newly authored from primitive surfaces and paths. No photograph or third-party mesh is embedded, sampled, texture-mapped, traced, or redistributed. The four anonymous, faceless classical silhouettes are original simplified figures with different drapery and seasonal symbols; they do not reproduce any specific sculptor's detailed artwork. The figures are pale worn stone, while bronze-green metal is confined to small nozzles and a ventilation grille. Marble and limestone variation is procedural vertex coloring.

The structural arrangement follows the visible landmark. Moulding profiles, stone joints, pier decoration, sculpture poses, seasonal objects, water level and flow paths are interpretive.

## Integration

- Returns a `THREE.Group` at origin, with local ground at y=0; place the group at the existing fountain coordinate and terrain height.
- Default materials can be replaced by passing the keys `masonry`, `coping`, `wetStone`, `marble`, `recess`, `metal`, `water`, and `flow`. Opaque geometries carry vertex colors.
- `group.userData.solids` contains six opaque meshes for collision/camera obstruction.
- `group.userData.flows` contains the water and jet meshes. Their raycasting is disabled, so adding the whole group as a camera obstacle will not let the water or spray push the camera away.
- Optional: call `group.userData.update(elapsedSeconds)` to vary default water roughness and spray opacity subtly. No audio or external resources.
- Eight material batches / draw calls. Fewer than 40,000 triangles. Geometries, normals and indices checked for finite values.
