✦ SPIELWELTENMoto Racer - Rampage ↗

Canyon upper-rim revision

User direction: drive along the upper edge of a deep canyon, with numerous substantial suspension crossings. The previous low valley routes did not provide that geography.

CanyonLandscape.AuthorRoutes now authors all three connected Canyon stages above the main canyon. Each stage has three straight wooden suspension crossings over separate tributaries. Roads follow broad nominal 120 m circular bends and remain about 766–899 m above local zero; the main river bed is about 92 m. A set of broad benches and steep escarpments connects the rim to the floor. Tributaries are about 260/300/340 m below their respective stages. These cuts extend into the main canyon instead of leaving a narrow hole directly under the road.

The approaches retain their fixed terrain anchors. CampaignBridgeBuilder continues to supply its actual moving deck/collider, hinged approaches, cables and portals. Its Canyon depth now follows the new tributaries. The separate load-response change belongs to the bridge-physics work; this document does not treat mathematical route proof as bridge-driving acceptance.

The river is a bounded opaque HDRP Lit surface at 94.4 m, following the exact authored channel center. Terrain banks occlude its wide buried edges. It is split into 256 m chunks with 16 m longitudinal spacing, and adds no collider. Root integrates CanyonLandscape.BuildScenery after ordinary world scenery.

Geometry content revision is 4, then receives the established physical-bank/bridge revision namespace. Original saved stages (UseOriginal=1, including the three existing Canyon entries) resolve to the new authored source. Explicit user spline overrides remain respected; ReloadAuthored rebuilds tributary descriptors from the final resolved routes. Revised stage briefs no longer tell riders to descend into the old valley.

Bounded offline verification

Tools/Verification/verify-canyon-rim.ps1 compiles the actual runtime source and executes the production catalog/alignment/heightfield math under the installed Unity Mono. It starts no Unity editor/player and creates no Unity objects. The first compilation caught an unrelated in-progress weather API access, which its owner fixed. Reviewing chapter heading requirements also caught a 35-degree stage transition; the route now fixes equal northbound tangents at every shared endpoint. The final bounded geometry proof passed:

Stage Length Maximum grade Minimum measured bend radius Suspension spans
canyon-01 4,522.7 m 1.662% 119.5 m 3
canyon-02 4,476.4 m 0.900% 118.5 m 3
canyon-03 4,555.0 m 1.625% 117.6 m 3

All nine span lengths are 259–290 m; bridge plan deviation is below 2.5 cm. Every checkpoint has at least a 35 m clear approach beyond a wooden interval. Shared endpoint positions and headings match. Heightfield clearance below span centers is about 258–341 m. See Docs/QA/canyon-rim-geometry-20260916.json for per-span values and source hashes.

This does not establish GPU quality, shader behavior, physical bridge traversal or complete race acceptance. The coordinated native route/bridge tests and final image review remain necessary. In particular the long suspension spans, canyon strata, terrain shore and real near-tree trunk changes must be judged in the new rendered build.

Initial native bridge check and bounded correction

The first consolidated native check passed all 95 campaign cases and 230 of 231 bridge cases. The failure was an exact centreline ray at the middle of Canyon02's third span (station about 3,834.1 m): no road hit. That span's other four support probes, moving mesh/collider identity, and all loaded end seams passed. The retained report is Docs/QA/campaign-bridge-refresh-initial-230pass-1fail.json.

An initial hypothesis about the eight-strip centreline junction was not confirmed: changing to nine strips left the exact same ray failing. That ineffective change has been reverted.

Failure-only native diagnostics in Docs/QA/campaign-bridge-midphase-diagnosis-r4.json establish the geometric condition. The ray at (-219.777832,833.043091,7760.75537) misses through both the PhysicsScene query and direct MeshCollider query with the default fast midphase. Independent double-precision triangle intersection finds one covered triangle (index 963, positive barycentric margin about 7.57e-7, intersection distance 4 m). Shifting Z by either 1 mm hits. Disabling only MeshColliderCookingOptions.UseFastMidphase makes the original direct collider ray hit, with the same triangle mesh, collider pose and ray.

The production fix therefore cooks only the bounded moving bridge-deck colliders with the conventional midphase. Faster-simulation cooking, mesh cleaning and vertex welding remain enabled. Cooking is configured before assigning the shared rendered mesh; there is no additional collider, geometry, hidden underlay, lowered test threshold or ray offset. Ordinary road/terrain collision retains its existing cooking. The original eight-strip geometry is retained. The exact original failing assertion and all bridge-driving/seam checks are rerun in the isolated native bridge suite.

The confirmation run passed 231/231 native bridge checks, including the exact previously failing canyon-02/span=3689.1 support ray at 3834.1, all nine Canyon span checks, selected full-span driving lanes, loaded seams and stationary/load-release trials. Scene/catalog/global restoration also passed. Evidence: Docs/QA/campaign-bridge-midphase-corrected-r5.json; log Tools/Logs/bridge-midphase-correction-r5.log records exit code 0. This proves that bridge fixture; it does not replace the planned full-stage drives or rendered image review.

Background relief correction after the 13:15 native images

The actual 20260916-131525-graphics-all-levels/review-canyon.jpg and original Canyon PNGs show a serious composition limitation: the rider sees a nearly common-height plateau horizon, with most of the deep canyon hidden below the foreground shelf. The nine bridges are present, but the wider landscape reads as a flat plain.

CanyonLandscape.DistantRelief adds alternating broad mesas, smaller inland buttes and opposing plateau shoulders. Successive geological benches have different widths and offsets; weathering breaks their outlines. These features use the existing terrain grid and regional material, add no renderers or separate mesh objects, and are deliberately broad enough for the distant 16 m grid. The maximum sampled addition is 457.857 m, providing visible rock faces above the road-height horizon.

The existing verified height function is retained verbatim as BaseHeight. All authored roads lie inside a protected analytic strip where relief is exactly zero. GroundHeight additionally preserves the exact original terrain within 110 m of the active road, including custom saved alignments, and blends only from 110–160 m outward. The river bed/shore and complete existing tributary footprints also retain the original height. No route point, grade, bank, bridge deck, abutment, cable, motion rule or CampaignBridgeBuilder code changed in this art correction.

One bounded offline production-math check passed after the correction: all previous route/span checks are unchanged, and 4,062 samples along road offsets to ±100 m, all nine tributary footprints and the river bed/shore exactly match the retained base height. See the updated canyon-rim-geometry-20260916.json. The new background appearance awaits the coordinated render; this mathematical check does not itself establish visual quality.