# MLB visual model research — October 2, 2026

The public MLB-hosted GLB files are a substantial improvement over rebuilding each stadium from a stylized seating diagram. They contain the recognizable physical bowl, playing field, bullpens, facades, concourses and distinctive architecture. They do **not** contain an addressable, surveyed database of every section, row and seat.

## Verified Seattle asset

Source: [MLB-hosted Stadium_SEA.glb](https://fv-assets.mlb.com/ballparks/Stadium_SEA.glb). The direct endpoint returned HTTP 200, 54,037,280 bytes, and `Access-Control-Allow-Origin: *`. Its response reports **Last-Modified July 13, 2022**. A current download does not establish that 2026 renovations have been incorporated.

The source asset has one node, `Stadium_SEA`, and one mesh, `Mesh.002`. That mesh has four material primitives:

| Material | Vertices | Triangles |
|---|---:|---:|
| SEA_Greyscale | 492,731 | 283,379 |
| Ads_Padding | 1,138 | 763 |
| SEA_Field | 31,004 | 16,899 |
| SEA_Infield | 248 | 372 |
| Total | 525,121 | 301,413 |

Four JPEG textures are embedded. The uncompressed asset includes seven sets of texture coordinates on each primitive even though the materials use only their default set. The JSON reports no compression extensions. A browser delivery pipeline should resize the embedded textures and remove unused attributes before adding optional geometry compression. Optimize a retained original and preserve a content hash.

## Coordinate alignment

Normal glTF loading applies the source node quaternion `[0.707106829, 0, 0, 0.707106709]` and source scale `[0.01, 0.01, 0.01]`. The resulting world coordinates are meters, with +Y up, left field toward negative X, right field toward positive X and center field toward negative Z. The home plate back tip is approximately `(0, 0.0136, -0.00092)` meters.

LaunchSeat uses feet with home plate at the origin and center field toward negative Z. Put the **already loaded** glTF scene inside a wrapper with uniform scale **`1 / 0.3048`**. No additional Seattle yaw is necessary. Do not apply the source .01 scale or source quaternion a second time.

The pitching rubber geometry lies around Z = -18.46 meters, approximately 60.55 feet. This supports the transform, but is not independent proof of inch-level survey accuracy. Mesh dimensions, historic fence editions and identifiable video landings still need comparisons against independent measurements.

The Seattle model's total native bounds include the parked roof: X -127.13 to 180.43m, Y -2.21 to 81.71m, Z -248.33 to 72.91m. Frame the playing bowl rather than using the parked roof's full bounding box as the default camera target.

## Roof handling

There are **no named Seattle roof objects**. The roof is merged with the seating and building structure in `SEA_Greyscale`. Hiding every object whose name contains “roof” therefore cannot solve this asset.

A blind horizontal clip at 42 or 45 meters would erase seating. Disconnected chair-shaped components were observed up to **44.783m** in right field and above 42m in the left-field upper deck. `mlb-model-geometry.js` provides a conservative Seattle display cut: remove only `SEA_Greyscale` triangles whose **three** loaded-world vertices are above 46m. Other materials and all geometry below that plane remain. This removes the tall parked roof, while lower canopy and supporting structure remain; it is explicitly **not a complete annotated roof removal**.

Toronto, Houston, Arizona, Texas, Miami and Milwaukee were inspected as well. Their bowl/building geometry is also merged. They have no usable section/row/seat node names. Houston and Milwaukee include additional Light and Camera nodes, which should not be adopted as application cameras or lighting. Miami's root quaternion differs, but normal glTF loading aligns its infield with the same center-field direction. Their roof cut rules must be derived per venue; applying Seattle's plane to all parks could remove real seating or leave an obstructing roof.

## What the model establishes and what it does not

- Establishes an MLB-hosted structural visual asset and an inspectable coordinate system.
- Provides textured physical geometry suitable for a recognizable lightweight viewer after optimization.
- Provides no numbered seat objects, row labels, section polygons, venue renovation dates or dimensional tolerance certificate.
- Does not establish that this file is used to calculate Statcast measurements. The linked article describes its use by the Home Run Derby visualization; it does not substantiate the stronger calculation/survey claim.
- Does not establish 99% landing accuracy. Landing positions require separate event data and video/community evidence; section mappings require their own audited geometry registration.

Keep the physical model, the section lookup layer and the event evidence layer separate. A detailed visual mesh should not silently upgrade approximate section mappings or ball endpoints into measured seat locations.

Machine-readable inspection, native bounds, source hash and conservative cut counts are in `data/qa-v0.18/model-inspection.json`.
