Rework the PA junction to match the reference drawing: yellow = PA -> highway
(entry), red = highway -> PA (exit). Entry and exit swap sides (entry now
EAST, exit WEST) and both trunks hug the PA perimeter instead of running
concentric spirals.
The simplification: both carriageways sit at the same deck level, adjacent,
so the median opening IS the far-side access path. The under-deck crossing
and merge runs are deleted outright -- 8 runs collapse to 4, and the
girder-soffit ceiling logic that constrained the crossing goes with them.
Part count 24,210 -> 21,691.
The median opening is now load-bearing rather than cosmetic (it is the only
route from the far carriageway to the ramps), so it widens from 6 to 9
samples per junction.
Orientation is a single flip-able constant (ORIENT) so a mirrored result is
a one-line correction, not a rewrite.
Measured on the built map (not asserted):
- 600 entry + 600 exit ramp parts
- max grade 8.00% / 8.27%, under the 9% limit
- 0 collisions with piers/masts/girders (558 structural parts)
- segment continuity <= 2.5 studs; trunk->merge handoff <= 1.7 studs
- merge lands at dY 0.0 (exact deck level), 33 studs lateral
- median open at junctions: 0 parts vs. control ~7 on plain mainline
Two traps worth recording, both caught by controls:
1. Studio's require() cache silently rebuilt STALE code. The first "passing"
build reported 17,575 parts and zero ramps, and the map contained
PAOffRamp/PAOnRamp parts whose names exist nowhere in the current source.
Every measurement taken before this was describing an old map. Added
tools/rebuild_fresh.luau, which clones the module to bust the cache; use
it rather than requiring MapBuilder directly.
2. A reported "median never opens" bug was a bad probe, not a defect. It
counted `Barrier` (the outer edge parapet, which must NEVER open) instead
of `Median_<i>`. Re-run against the right name: control 7, junctions 0.
Both were only visible because the probes carry controls -- a 0-hit result
with no control is vacuous. The verification harnesses are kept in tools/
with their controls built in.
The PA ring road and the expressway mainline were both at ground level, so
the ring parapet stood INSIDE the carriageway (measured -10.0 studs of
vertical overlap: a wall in the middle of the road).
Reference photos of the real Daikoku Futo PA show the expressway flying
OVER the parking apron on pillars, with the PA at ground level and ramps
climbing up to meet it. Rebuilt to match:
- mainline lifted 38 studs through the junction, eased in/out (max 5.26%
grade, within real expressway limits)
- PA ring + apron stay at ground level; legacy PARingPillar props removed
- both on/off ramps regraded over the full rise with smoothstep easing,
segments overlapped 3 studs so wheels can't catch a seam, plus support
pillars and edge kerbs where the deck is high
Verified in-engine against built parts (tools/diag_daikoku.luau), not just
source: clearance now +28.0 studs, both ramps continuous (max step 5.62,
no gaps). tools/plot_daikoku.py renders the plan/section for comparison.