ShitboxInfinity/levels/albert_parklands/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

536 lines
7.9 KiB
JSON

[
{
"name": "Alice x George",
"spawn": {
"x": -163.58628244865508,
"z": 162.06599199440433,
"y": 14.0,
"dx": 0.7668331983120437,
"dz": -0.6418464348787193
},
"streams": [
{
"pts": [
[
-71.62300756706763,
85.0918821008208,
15.68
],
[
-72.10279819575109,
85.49061753866586,
15.69
],
[
-82.55345192912239,
94.80588029839768,
16.5
],
[
-104.44928325520195,
113.36472803055571,
16.93
],
[
-114.55295338424757,
122.93815788447793,
16.38
],
[
-118.63551709634598,
126.33214688818488,
16.11
],
[
-124.17972594270637,
130.60060399325408,
15.66
],
[
-132.4126578466066,
136.84137198262476,
15.15
],
[
-135.42619497476394,
139.13115862719584,
15.05
],
[
-137.0173915026139,
140.32992242527928,
15.02
],
[
-142.22691046279974,
144.18129435873087,
14.99
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
-75.361941989609,
84.82292365250544,
16.0
],
[
-80.93953886827424,
78.61163770120406,
16.61
],
[
-82.56599989409156,
76.7348960854059,
16.75
],
[
-115.40558143561937,
38.74155522137386,
23.41
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
-145.4370805808313,
139.83908204087984,
15.0
],
[
-140.2367304705485,
135.99450357474848,
15.01
],
[
-138.6871885076824,
134.82698377267795,
15.02
],
[
-135.67603860636424,
132.53900681717874,
15.1
],
[
-127.45466133363814,
126.30702760692736,
15.64
],
[
-121.99640893818653,
122.1055163120108,
15.97
],
[
-118.19749682812089,
118.9535245154313,
16.16
],
[
-108.01476176313997,
109.30919316947609,
16.87
],
[
-86.07852578965569,
90.71517690194068,
16.9
],
[
-75.68968831102165,
81.45400766143295,
16.16
],
[
-75.08305996358739,
80.94603629889595,
16.14
]
],
"speed": 11.0,
"interval": 1.8
},
{
"pts": [
[
-111.32018174165945,
35.21033597859207,
22.71
],
[
-78.48079808538708,
73.20344791473178,
16.61
],
[
-76.9072614072839,
75.01987789888024,
16.48
],
[
-71.34412554104603,
81.2149947472113,
15.86
]
],
"speed": 11.0,
"interval": 1.8
},
{
"pts": [
[
-72.11668883510822,
80.61865688274891,
15.94
],
[
-63.31551687082244,
85.23196646473183,
15.12
],
[
-54.55178175870453,
95.53822905343011,
14.31
],
[
-39.78320194928109,
112.96784568335697,
16.67
],
[
-38.24953472930413,
114.64142478239386,
16.96
],
[
-37.466790819459995,
115.77089209241056,
17.13
],
[
-36.90754547102499,
116.86830840435711,
17.26
],
[
-36.64154284861633,
117.96012844030032,
17.36
],
[
-36.54962586770791,
118.92829018795193,
17.43
],
[
-36.58380403095183,
120.63163096695364,
17.52
],
[
-36.733516672801336,
121.77324800253669,
17.57
],
[
-36.949600973076684,
122.55506784741175,
17.58
],
[
-37.31118692587169,
123.40422578212599,
17.59
],
[
-38.02064964168787,
124.38554265247478,
17.56
],
[
-39.45793344555888,
125.80100694689808,
17.47
],
[
-41.96015977939887,
127.8781767661959,
17.33
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
-45.40767874247836,
123.72190283402932,
16.65
],
[
-43.03089623055088,
121.75206425317394,
16.81
],
[
-41.9792929338678,
120.7127857471952,
16.87
],
[
-41.99739811738572,
120.72105141795794,
16.87
],
[
-42.06268798731611,
120.81830615252781,
16.87
],
[
-42.041735423545425,
120.78187839726885,
16.87
],
[
-41.974164266802894,
120.30911503284231,
16.85
],
[
-41.94908321684239,
119.00484301205215,
16.78
],
[
-41.975684667956976,
118.80092035936316,
16.76
],
[
-41.94671891520851,
118.80911519521383,
16.77
],
[
-42.0788310934576,
118.57964350736775,
16.74
],
[
-42.38250615411705,
118.1168452176333,
16.67
],
[
-43.89081206390128,
116.47320431640294,
16.4
],
[
-58.67282832403665,
99.02778134654227,
14.55
],
[
-66.81772305118318,
89.3422647349603,
15.08
],
[
-74.5893786955468,
85.41926151696784,
15.91
]
],
"speed": 11.0,
"interval": 1.8
}
],
"targets": [
15000,
35000,
60000
]
},
{
"name": "Margaret x Edward",
"spawn": {
"x": 274.9079157711072,
"z": -373.12117782739404,
"y": 13.91,
"dx": -0.7427057931255263,
"dz": 0.6696178797327494
},
"streams": [
{
"pts": [
[
185.8338152967176,
-292.8126451679154,
14.05
],
[
193.65593395098287,
-299.88251164434115,
14.74
],
[
211.37786867540518,
-315.2307257048046,
15.6
],
[
216.02310568686988,
-319.25459820267537,
16.29
],
[
237.6429961947087,
-338.58229333857753,
18.91
],
[
239.66099718191472,
-341.2883463335457,
19.31
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
179.81812157632743,
-304.16623584225226,
14.19
],
[
181.35983927566346,
-302.4069925620872,
14.27
],
[
184.2133034529848,
-299.1448137854387,
14.28
],
[
189.71555797124375,
-292.5416508365839,
14.26
],
[
194.9234531376747,
-286.3366793395667,
14.2
],
[
234.05675616721896,
-241.1315253602194,
16.15
],
[
244.50993125963066,
-229.32934036140196,
14.64
]
],
"speed": 12.0,
"interval": 1.5
},
{
"pts": [
[
243.95347049022743,
-338.01196526635846,
16.8
],
[
241.32949950132615,
-334.63644826175323,
16.37
],
[
219.61114951437548,
-315.21901379742513,
15.39
],
[
214.91318335480702,
-311.1488694949895,
15.27
],
[
197.21785955435436,
-295.8238559560563,
14.84
],
[
189.45480420951895,
-288.8065948320647,
14.03
]
],
"speed": 11.0,
"interval": 1.8
},
{
"pts": [
[
240.4674984004257,
-225.74901403845038,
13.81
],
[
229.982416914263,
-237.5875502401286,
14.69
],
[
190.83429465784906,
-282.80981346079136,
13.75
],
[
185.5730615349928,
-289.07758916339617,
13.81
],
[
180.09260788812207,
-295.6548470145767,
13.73
],
[
177.29669340310514,
-298.8501898379666,
13.58
],
[
175.7569318305437,
-300.6071997580377,
13.51
]
],
"speed": 11.0,
"interval": 1.8
}
],
"targets": [
15000,
35000,
60000
]
}
]