ShitboxInfinity/levels/kangaroo_point/junctions.json
m3ultra 65da434678 Real terrain: DEM elevation under every level
tools/fetch_dem.py pulls the open AWS terrarium elevation tiles for each
level's bbox (derived from the OSM geometry itself -- the fetch bboxes were
never recorded) and writes an f32 heightmap. The builder bilinear-samples it:
roads/footpaths/crossings drape (subdivided to ~8 m so long OSM segments stop
chording across curved ground), buildings lift rigidly to the lowest terrain
under their footprint with a 2 m foundation skirt, trees/props/planters ride
their own base heights, and the flat ground slab becomes a real terrain mesh.
Bridges get an explicit deck profile (lerp between end heights plus a hump)
instead of draping down into the river, the truss follows the deck, and the
Bradfield Highway now genuinely flies over Kemp Place -- the game has an
underpass. Kangaroo Point's cliffs are an actual 20 m drop, Edward Street
climbs to 55 m at Spring Hill.

Junction events bake spawn/convoy heights (osm_junction.py grew a pure-python
DEM sampler); the game respects marker heights everywhere it used to hardcode
ground=0.

Bugs the terrain surfaced, all found by measurement:
- Long road segments chorded across curved ground: the car visually sank to
  its windows mid-block. Fixed by subdividing draped ribbons.
- The 9 m terrain grid aliases cliff edges and bulged metres ABOVE the finely
  draped roads: a car spawning there was inside the terrain sheet and got
  depenetrated through the floor into the void (y = -710). Fixed by giving
  roads real collision and carving the terrain grid down wherever a draped
  road sample lands (11k+ carve samples on Kangaroo Point alone).
- The junction validator and tuner drove throttle-only, which cross-slope
  drift turned into 40-86 m misses; they now hold aim like a player would.
- Edward x Elizabeth launched down a 17% grade, went airborne at the crest
  and wedged off-street: unwinnable geometry, not a bug. Swapped for
  Elizabeth x George on the flat lower CBD. All 9 junctions validate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 15:08:42 +10:00

175 lines
2.5 KiB
JSON

[
{
"name": "Cliffs Corner",
"spawn": {
"x": 21.72600853145121,
"z": -89.96723823539561,
"y": 6.96,
"dx": 0.7116289476302671,
"dz": -0.7025555073406219
},
"streams": [
{
"pts": [
[
63.92619388342862,
-109.98937518013152,
17.17
],
[
78.3750416498091,
-148.8340213803462,
25.6
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
106.13660245700423,
-179.68219050814878,
30.64
],
[
105.14898470103478,
-213.87167130817437,
28.03
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
83.43625143590378,
-146.95142862004474,
26.11
],
[
68.98740366952329,
-108.10678241983003,
17.79
]
],
"speed": 11.0,
"interval": 1.8
},
{
"pts": [
[
110.54673313420321,
-214.02759389225906,
27.69
],
[
111.53435089017266,
-179.83811309223347,
30.29
]
],
"speed": 11.0,
"interval": 1.8
},
{
"pts": [
[
110.03793689684629,
-168.49583563849748,
31.15
],
[
105.07701815835642,
-166.64105720795808,
31.55
],
[
102.76621908994164,
-165.6886852292976,
31.69
],
[
100.0562323833477,
-163.76233037299872,
31.53
],
[
96.9873892973125,
-160.78656603278262,
31.04
],
[
94.50499850150788,
-158.03413164414619,
30.28
],
[
91.4342291831665,
-153.71805517412884,
29.08
],
[
82.70848350683406,
-145.88280488205245,
25.76
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
79.10280957887883,
-149.90264511833848,
25.94
],
[
87.56161285248508,
-157.4814104264721,
28.74
],
[
90.25853122720883,
-161.369924756482,
29.84
],
[
93.10927630970947,
-164.5442567671812,
30.49
],
[
96.57846276532892,
-167.89332522702423,
31.01
],
[
100.07071556655998,
-170.36781557108517,
31.29
],
[
103.11280473039093,
-171.67115319207213,
31.36
],
[
108.14657768085227,
-173.5537759619962,
30.96
]
],
"speed": 11.0,
"interval": 1.8
}
],
"targets": [
15000,
35000,
60000
]
}
]