Files
tokyo-wangan-racing/docs/japanese-road-standards.md
jesse 7d368d5444 Render C1 structural variety: girder bridges, Ginza overpasses, JCT speeds, 3+3 widening
Four fidelity fixes, all verified in a live Studio datamodel (not just built):

1. Wire up the dead `bridge` flag. Circuit.luau marks 474 samples as bridge
   spans but nothing ever read the field, so every elevated metre rendered as
   the same slab on square columns. Flagged spans now get a steel box girder
   (鋼箱桁橋) with stiffener ribs under the deck, carried on a transverse pier
   cap and round columns at a wider pitch than the viaduct pillars.

2. Ginza 跨道橋. The Ginza section sits below street level in the filled-in
   楓川・築地川 river beds and the surviving city bridges cross over it, their
   piers landing in the median. Adds the crossing decks, parapets and centre
   piers -- which is the physical reason lane changes are banned there, not
   just a paint choice.

3. Junction speed plates. 江戸橋JCT内 / 浜崎橋JCT内 / 京橋JCT-旧白魚橋乗継所 are
   posted 40 km/h, not the 50 km/h mainline limit; plates repeat more often
   through the short restricted stretches.

4. Shiodome JCT -> Hamazakibashi JCT widened to 3+3 lanes via widthAt(), with
   a taper (max ~1.7 studs/sample) instead of a step. Every fixed-width
   consumer -- deck, median, parapets, lane marks, signage offsets, skyline
   setback, finish line -- now reads widthAt() so nothing floats or clips.

Verified headlessly (tools/verify_c1_fixes*.luau):
  girders 488 / 474 flagged samples, pier caps 85, columns 80
  Ginza overpasses 7, piers 7, lateral offset from centreline 0.000 studs
  speed plates 40km/h x7, 50km/h x8
  deck width Shiodome 81.5 vs Kasumigaseki 60.0
  seam lip max 0.0006, road-surface raycast step max 0.260, 0 deck holes

Two earlier "failures" were bad tests, not bad geometry, and the fixed
harnesses document the traps: deck parts are pitched by CFrame.lookAt so
Position.Y+Size.Y/2 is not the surface height (and LookVector is -Z, so the
end faces are easy to swap), and a seam raycast must filter to the Expressway
folder or it hits TunnelCeiling/MedianFence and reports a phantom 19-stud step.
2026-08-01 18:10:00 -04:00

5.1 KiB
Raw Permalink Blame History

Japanese expressway road-standard reference (verified)

Compiled 2026-08-01 for the Tokyo Wangan Racing circuit. Every figure here was read from a primary standard or an official sign artwork file, not from recollection. Where a commonly-repeated number turned out to be wrong, that is called out explicitly, because the wrong versions are widespread online.

Road markings — 全標協 (Japan Road Marking Association) 2012 / 2018

Element Spec Source
車線境界線 lane boundary (dashed) line length 3–10 m; gap 1×–2× the line length; width 10–15 cm (15 cm "desirable") 全標協 2012 p.42
Lane boundary where overtaking undesirable (屈曲部/curves) becomes solid instead of dashed 全標協 2012 p.42
Boundary vs 変速車線 (accel/decel lane at ramps) length 2 m (3 m on decel lanes), width 45 cm 全標協 2012 p.42
導流帯 gore / zebra hatching 45 cm white solid bars repeated every 1.0 m; bounded by a 15–20 cm edge line 全標協 2018 pp.97–98
Zebra around an obstruction 45 cm bars at 1.0 m, guided by arrows upstream 全標協 2018
Dashed extension of edge line through intersections width 15–30 cm, line+gap every 0.5–2.0 m 警察庁 2014 p.11 様式4

Correction to a widely-repeated claim. The "45 cm wide lines on expressways" figure that circulates online is not the lane boundary — 全標協 2012 p.42 gives 45 cm only for the boundary between a through lane and a 変速車線 (acceleration/deceleration lane). Applying 45 cm to ordinary lane dividers makes the road look like it is all ramp. Lane dividers are 15 cm.

On 8 m / 12 m. The standard specifies a range (3–10 m line, gap 1–2×), not a single value. 8 m line / 12 m gap sits inside that range at the high-speed end (gap = 1.5× line) and is the configuration used at expressway speeds; a 5 m/5 m rhythm reads as a surface street. Treat 8/12 as "a legal expressway configuration", not as "the one legally mandated number".

Colour values — sampled from official sign artwork, not estimated

Use Value
Guide sign (案内標識) green #005D35
Shutoko route badge green #007F1F
Sign lettering white #FFFFFF

Japanese expressway guide signs are green; ordinary-road guide signs are blue. Shutoko uses green.

Speed limits (from the route articles' own signage tables)

Route Posted
C1 都心環状線 (Inner Circular) 50 km/h mainline, 40 km/h inside the junction sections — 江戸橋JCT内, 浜崎橋JCT内, and 京橋JCT–旧白魚橋乗継所 are each posted 40 in the route's own 車線・最高速度 table
B 湾岸線 (Bayshore/Wangan) 80 km/h (60–70 in places)

The C1 and the Wangan are not the same limit — a C1-shaped circuit should be posted 50, not 80.

Caveats / not verified

  • Lamp pole spacing (~35 m) and parapet heights are reasonable engineering values but were not confirmed against a primary source; they are tuned by eye for gameplay readability.
  • Asphalt/concrete RGB values in MapBuilder are art direction, not measured photometry. Porous asphalt (排水性舗装) does read darker and coarser than ordinary asphalt, which the palette reflects.

Structural sections of the C1 (drives MapBuilder geometry)

The C1 is not a uniform elevated tube — it changes structural type along its length, and the circuit now renders each type differently.

Section Real-world form In-game
Elevated viaduct (most of the loop) Deck on concrete columns Pillar every 3rd sample above Y=18
Bridge spans (474 flagged samples) Steel box girder 鋼箱桁橋 over the old canals BridgeGirder + GirderRib under deck; PierCap + round PierColumn on a 6-sample pitch
Ginza 銀座 Runs below street level in the filled-in 楓川・築地川 river beds; surviving city bridges cross over it, piers landing in the median GinzaOverpass + OverpassParapet, OverpassPier in the median
Tunnel sections Bored/cut-and-cover Tunnel bore, ceiling, no sky lighting

Girder depth is set from the span/depth rule of thumb for steel box girders (≈1/20 of span): at ~35 m spans that is ~1.8 m ≈ 6.4 studs (GIRDER_H).

Why Ginza bans lane changes. The no-lane-change marking through Ginza is not arbitrary styling — the crossing bridges' piers physically occupy the median between the carriageways, so the lanes are separated by structure. The yellow line and the OverpassPier geometry are two expressions of the same fact.

Lane counts

Section Lanes
Most of C1 2 + 2
Shiodome JCT → Hamazakibashi JCT 3 + 3 (widened; carries the merge from the Haneda line)

Rendered by widthAt(i): 60 studs baseline, 82 studs in WIDE_ZONES, with a taper between so the widening never steps more than ~1.7 studs per sample.

Method note

Wikipedia article extracts (prop=extracts) silently drop the infobox and table markup that carry these figures — the measurements only appear in the raw wikitext (prop=revisions&rvslots=main). Query the wikitext when hunting for specs.