# Improving park geometry without purchases

The current 30 reporting maps are generated from the same approximate geometry as the WebGL viewer. Section identifiers and explicit row references are retained; footprints, elevations and chair spacing still require independent measurement. Community agreement can locate a ball within that model but cannot make the model physically exact.

## Product priority: choose the best seat to catch a ball

The primary goal is to help a fan choose the best available seat for a chance to catch a ball, using the evidence we have. A complete, verified seat inventory and reliable landing evidence take priority over decorative model detail. The generated chairs in `stadium3d.js` are visual instances placed using assumed spacing and sequential internal numbers; they are not an official inventory of sellable seats.

For each park and effective layout edition, build an inventory with official section, row and seat labels; numbering direction; row endpoints and elevation; seat centers; aisles and gaps; wheelchair and companion places; and a source and verification status. Standing-room areas, berms and other general-admission zones need separate area records rather than invented numbered chairs. Validate inventory completeness against an authoritative seating manifest or equivalent park/ticketing evidence, and validate coordinates against independent measured references. A published stadium capacity alone is not a seat manifest.

Track three separate results: inventory coverage, measured geometry error, and landing-location uncertainty. Every seat can be accounted for without pretending that every seat already has a precise catch probability. Show recommendations at the section or row resolution supported by the landing evidence; distinguish individual seats only when the evidence supports that distinction. Historical landings must use the appropriate layout edition and account for netting, inaccessible destinations, first impact and final catch/stop.

The current home-run section ranking uses landing counts. Before presenting per-seat chances, account for verified seat counts, relevant game exposure and landing uncertainty: a large section receiving more balls does not automatically give each spectator a better chance. Do not use generated chair counts as the denominator. Keep the selected park's own lightweight model as the mobile fan experience.

## Google API key decision

A key could support an optional embedded reference map for inspecting visible park context, including bullpens and fan areas. It would not supply official section/row/seat labels or guarantee one-foot coordinate accuracy. Google's [Photorealistic 3D Tiles explanation](https://mapsplatform.google.com/resources/blog/commonly-asked-questions-about-our-recently-launched-photorealistic-3d-tiles/) explicitly describes those tiles as unsuitable for survey-grade measurements and notes alignment offsets. Visual detail must not be treated as positional accuracy.

Use the existing no-key reference links while building the independent seat inventory and calibrated geometry. An embedded Google layer is optional research/builder functionality, not a prerequisite for recommendations. The owner's no-spend constraint remains in force; no key, billing account or paid service was enabled for this research.

## Google Maps and stronger free sources

Each reporting map has a **Compare aerial view** link for its ballpark and a separate park/netting reference link. The Google link uses the documented [Maps URL format](https://developers.google.com/maps/documentation/urls/get-started), which requires no API key. It opens a place search; the viewer does not download or extract its imagery or meshes. No billing account or paid map API was enabled.

Photos, aerial views and seating charts can help us understand the park and build independent models. A browser map alone does not establish surveyed bullpen corners, seating rows, net heights or exact landing endpoints. Google’s specific [Map Tiles API policies](https://developers.google.com/maps/documentation/tile/policies) also distinguish visualization from geodata extraction; that API is not being used as a downloadable model source here.

For reusable measured geometry, investigate these free sources:

| Source | Useful evidence | Limits to verify |
| --- | --- | --- |
| [USGS 3DEP](https://www.usgs.gov/3d-elevation-program/about-3dep-products-services) | Original lidar point clouds and elevation data, free of charge | Coverage, collection date, classification, point density and project accuracy; a bare-earth DEM removes structures |
| [Boston Planning 3D downloads](https://www.bostonplans.org/3d-data-maps/3d-smart-model/3d-data-download) | Public city terrain, groundplan and building models, available by tile under PDDL | Exact Fenway tile content, collection date and whether stands/renovations are represented |
| [Overture buildings](https://docs.overturemaps.org/schema/v1.18.0/reference/buildings/building/) | Building footprints, optional height and building parts | Upstream attribution, missing heights, roofs and buildings versus the interior seating bowl |
| Club field guides and park photographs | Fence dimensions, distinctive features, bullpen and netting changes | Published versus measured anchors, camera distortion, date and occlusion |
| Official ticket/section references | Correct section and explicit row identifiers | Diagram scale, elevations and missing seat-number geometry |

These sources have been researched; new lidar or city-model geometry has not yet been imported or validated for a ballpark in this release. No inference is made that a city building model contains every row or individual chair.

## Park-by-park measurement workflow

1. Identify home plate, field orientation, base geometry and multiple independently documented fence points. Establish feet in the model's local coordinate frame: X left/right, Y elevation, Z toward/behind the outfield with forward field Z negative. Preserve source coordinates and the transform separately.
2. Obtain dated imagery or original lidar for that venue. Check whether the acquisition predates a renovation. Use structure-bearing point clouds rather than a bare-earth surface when measuring stands.
3. Delineate seating, both bullpens, dugouts, aisles/concourse, field/foul territory, roofs and exterior destinations as separate surfaces. Oracle's cove stays a separate water zone; roofs can remain hidden visually while being represented in a destination inventory.
4. Attach official section/row references to those surfaces. Verify overlapping tiers and narrow decks from multiple angles. Do not number chairs from spacing assumptions.
5. Version the geometry by effective dates, including fence moves, bullpen moves, changes in ticket labels and nets. The current edition is `park-v0.16-2026`; it is not a verified historic reconstruction. Changing a footprint needs a new edition and reviewed migration of old dots.
6. Validate against held-out reference points and visible landing footage. Report horizontal, vertical and section-assignment errors separately, by park and date. Retain unknown, first-contact and final-stop destinations. Record whether an uncertainty comes from the model, video or fan disagreement.
7. Reduce the validated surfaces to browser meshes and compressed placement polygons. Keep detailed source data offline; load only the selected park. The fan reporter already avoids rendering individual chairs and draws only one seating level at a time.

Start with Fenway's Monster, irregular bowl and right-field bullpens; then Oracle's cove, arcade and centre-field bullpens. Continue through the existing [30-park plan](PARK_PLAN.md), prioritizing geometry and non-spectator destinations before decorative detail. No inch-level or five-foot claim is supported until this measurement and validation work succeeds.

## Why fans should mark home runs too

[Savant's public CSV definitions](https://baseballsavant.mlb.com/csv-docs) describe hit coordinates, projected distance and launch angle. They do not provide an official ticket section, row and seat for every ball. Our inference is that these fields can constrain a modeled flight, while visible footage or in-person evidence is still needed to establish its actual first contact and final stop. Pitch trajectory fields must not be mistaken for post-contact foul-flight measurements.

Fans can therefore confirm both HR and foul endpoints. A report is tied to its recorded ball; it supplements the event ledger and does not replace the recorded batter, inning or scoring facts. A known area without a point is useful evidence. Requiring an invented dot would make the database less accurate.
