# Building geometry along recovered free-roam routes · r350

## Scope and method

This checks the combined viewer's recovered free-roam route corridors in L4RB,
L4RC, L4RD, L4RF, and L4RG. Those are the five regions with route records in
the current combined route data. L4RH and L4RR have no recovered free-roam
routes, so they are not covered. This is not a citywide placement or retail
visibility audit.

For each route, I sampled the waypoint polyline every 2 m and at the route
center and 1.2 m to either side. The sampled route Z is the recovered
`height_score_world_units` value; the viewer uses that field as each waypoint's
Z. At each sample, the transformed `XB_` building triangles were tested in XY
against the car-height band from route Z −0.25 m to route Z +2.2 m. This checks
surfaces physically occupying the sampled driving corridor. It does not detect
problems between samples, outside the route corridor, in non-`XB_` scenery,
or in scene visibility/LOD and materials.

A route sample is counted as road-supported when an exported road-family
triangle is present at the XY point within 2.5 m of the route Z. The building
check ran for all route samples, including those without this support; the
support column is reported separately and was not a filter on the zero-hit
result.

## Results

| Region | Route samples | Road-supported samples | `XB_` car-height hits |
|---|---:|---:|---:|
| L4RB | 31,785 | 20,962 | 0 |
| L4RC | 11,910 | 11,897 | 0 |
| L4RD | 26,124 | 26,124 | 0 |
| L4RF | 9,729 | 9,729 | 0 |
| L4RG | 44,091 | 44,091 | 0 |
| **Total** | **123,639** | **112,803** | **0** |

There are 10,836 unsupported samples: 10,823 in L4RB and 13 in L4RC. They still
received the building-height test, but their road support is incomplete and
this audit does not establish that every point in those route definitions is
drivable.

## Old Town candidate resolved as an overhead layer

A first XY-only pass appeared to find a crossing near L4RD TrackRoutesA11/A12
at `(82.76, -648.71)`. That was a false positive caused by choosing the
highest road surface at the same XY. The location contains three stacked
surfaces:

- `TRN_CS_ROADB_CHOP_N18_R0_0_3`: Z `-2.272`, the lower roadway used by the
  free-roam route.
- `TRN_CS_TUNNELA_CHOP_N18_R0_0_2`: Z `9.532`, the tunnel/overhead surface.
- `TRN_CS_ROADA_CHOP_N18_R0_0_0`: Z `13.498`, the elevated road layer.

Chrome at combined L4RD route 104, distance 340, reported the player at
`(87.55, -647.33, -2.207)` after the route's source lane offset. The nearby
`XB_BUILDOLDTOWN8_1A_00_0_1` faces that triggered the XY-only result are at
about Z `14.052`, more than 16 m above the lower road at this sample. The asset's GLB
instance matrix is:

```text
[-1.083251953125,  0.0318603515625, 0, 0,
 -0.0291748046875, -0.99951171875, 0, 0,
  0,               0,              1, 0,
 79.12842559814453, -657.5258178710938, 13.77326488494873, 1]
```

That matrix is identical in the regional L4RD GLB and the combined GLB. The
exporter reads scenery instance position from the source record at `+0x20`,
its packed 3×3 rotation at `+0x2c`, and writes those values directly into the
GLB matrix (`tools/export_nfsu2_world.py`, `parse_instances`). The combined
assembly has not moved this candidate. The packaged screenshot shows the lower
road unobstructed beneath the overhead structure.

- [Packaged combined L4RD view at the inspected corridor](../webgl-city/review/images/504-r350-l4rd-route-corridor.png)
- [Open the same combined route view](../webgl-city/?world=combined&region=L4RD&debug&route=104&distance=340&radius=220)

## Limits

This evidence does not show that citywide object placement, visibility, or
street assembly matches retail gameplay. It establishes only that this sampled
corridor sweep found no `XB_` surface in the player-height band in L4RB, L4RC,
L4RD, L4RF, and L4RG, and that the Old Town overlap candidate is an overhead
surface when compared against the actual route height. It does not justify
moving or deleting these source instances.
