Pick one. These are plan views, not built track: everything here costs seconds to change and nothing has been modelled yet. Every number was measured by scripts/track-layout-preview.mjs, the same tool that validates to 0.00% on lap length and −0.09% on lap time against the shipped race.
Flow · 11,678.4 u · 44.92s lap · 16 corners · 9.22s pass window
Road width along the lap, 40–70 u on every panel. Delivered 44–64 u. the pass window · the tightest corner.
One hard braking point and long corners everywhere else. Big-radius sweepers you hold a drift through, a chicane early to teach the rhythm, and a nine-second causeway across the bay that ends in the only real hairpin on the lap.
Plays like Fast, smooth, forgiving. The lap you would choose to show someone the drift mechanic.
Build cost Cheapest of the three. No new structural systems — it is the shipped bridge idea at a bigger scale.
The honest risk The least technical layout, and the one that leans hardest on the drift being fun. Its corners cluster at r110-250, so it does the least to answer "every corner is taken the same way".
Hits 22 of 24 targets. Misses: Handedness >= 33%; Road/terrain value >= 20%.
Technical · 11,877.5 u · 45.68s lap · 17 corners · 9.26s pass window
Road width along the lap, 40–70 u on every panel. Delivered 44–64 u. the pass window · the tightest corner.
A city block circuit: square corners, two staircase chicanes through the service streets, three switchbacks in the old town, and one Expressway where all of it either pays off or does not.
Plays like Busy and demanding. Rhythm is the skill; the Expressway is the reward for having found it.
Build cost Medium. No new systems, but 17 corners of downtown need 17 corners of city — it asks the most of the dressing pass.
The honest risk The busiest lap of the three and the most likely to read as work rather than flow. Two staircase corners sit at 0.82 s of announcement — over the 0.8 s gate but the tightest numbers on the sheet.
Hits 22 of 24 targets. Misses: Every corner >= 1.5 s announced; Road/terrain value >= 20%.
Set piece · 11,643.4 u · 44.78s lap · 16 corners · 9.72s pass window
Road width along the lap, 40–70 u on every panel. Delivered 42–62 u. the pass window · the tightest corner.
The lap crosses itself. A viaduct climbs 2.5 km diagonally back across the infield, passes 30 units directly over the start/finish straight at its crest, launches, and drops into two stop-and-turn hairpins.
Plays like A long build to one enormous event. On lap 1 you watch the leaders go over your head; by lap 3 you are the one going over.
Build cost The most expensive. A viaduct needs a deck, an underside, supports and a road-over-road case the shipped bridge only half-solves at a quarter of the span.
The honest risk The crest hides the viaduct hairpin down to 1.3 s of announcement — legal, but the tightest thing on the candidate, and it is the corner arriving off a 30-unit drop.
Hits 22 of 24 targets. Misses: Every corner >= 1.5 s announced; Road/terrain value >= 20%.
Shipped · 2,889.7 u · 11.11s lap · 5 corners · 2.18s pass window
Road width along the lap, 40–70 u on every panel. Delivered 45–56 u. the pass window · the tightest corner.
Drawn at the same scale as the three candidates — this is what four times longer actually looks like. Today's lap is 11.11 s, its longest straight is 2.18 s, it has 5 corners, and it throws a beat at the driver every 0.69 s. (Measured against the working tree, so it already includes the start/finish kink fix: the two r12 kinks the previewer found on the start line are gone, and the lap is 2,889.7 u rather than the 2,897 u in the design notes.)
| Target | A — Bayfront Sweep | B — Downtown Deadline | C — Skyline Viaduct | Today |
|---|---|---|---|---|
| Lap length ~11,700 u4x the shipped 2,897 u | 11,678.4 u | 11,877.5 u | 11,643.4 u | 2,889.7 u |
| Lap ~45 s / race ~135 s2-3 minute race | 44.92s / 134.75s | 45.68s / 137.05s | 44.78s / 134.35s | 11.11s / 33.34s |
| Corners 15-25MK8's range (today: 7) | 16 | 17 | 16 | 5 |
| Overtaking straight 8-10 sthe single most important target (today: 2.19 s) | 9.22s | 9.26s | 9.72s | 2.18s |
| Overtaking straight >= 8 s AT TOP SPEED286 u/s, the HUD number on a passing mark (mean-speed row above is not enough) | 8.38s @286 · 10.38s @231 | 8.42s @286 · 10.42s @231 | 8.84s @286 · 10.94s @231 | 1.99s @286 · 2.46s @231 |
| Second straight 4-5 ssomewhere to use an item that is not the main zone | 4.75s | 3.97s | 5.32s | 1.5s |
| Beats 13-16, spreadthe SAME beats, not more (today: 16 every 0.70 s) | 15 every 2.99s | 16 every 2.86s | 15 every 2.99s | 16 every 0.69s |
| Sweepers >= 6a shape that holds a drift | 8 | 9 | 7 | 3 |
| Hairpins >= 2a shape that forces a stop-and-turn | 2 | 3 | 2 | 1 |
| Chicanes >= 2a shape that breaks the rhythm | 2 | 3 | 2 | 0 |
| Handedness >= 33%both drift directions get used | 31% | 35% | 44% | 40% |
| Radius spread80-400 u, min authored >= 72 | 93.1-253.6 | 95.1-224.4 | 105.9-216.9 | 110.5-179.7 |
| Three populated radius classessweeper > 200 · medium 90-140 · hairpin < 90 (floor 72) — one corner shape is one corner, however many there are | 8 sweep · 3 med · 1 hair | 1 sweep · 3 med · 2 hair | 2 sweep · 1 med · 1 hair | 0 sweep · 0 med · 2 hair |
| Delivered width rangewhat the runtime hands the camera, not what was typed (shipped CC 1.244x, Penguin Village 1.103x) | 44-64 u (1.455x) | 44-64 u (1.455x) | 42-62 u (1.476x) | 45-56 u (1.244x) |
| At most 45% of the lap at one widthshare within +/-5% of the lap median — Penguin Village sits at 82%, which is the "one boulevard" complaint | 24% at 55.3 u | 39% at 52 u | 31% at 54.1 u | 31% at 52.9 u |
| A width change you can SEE: 8 u in <= 0.6 sone kart width of narrowing, in one beat. Shipped CC does it in 0.29 s; Penguin Village never does it | 0.56s at p0.688 | 0.57s at p0.652 | 0.56s at p0.844 | 0.29s at p0.184 |
| Straight-to-hairpin width delta >= 12 uwidth coupled to the layout: the road visibly closes down where the lap does | 20 u (64 -> 44) | 18.1 u (64 -> 45.9) | 19.7 u (62 -> 42.3) | -2 u (54 -> 56) |
| No single frame signature over 30% of the lapthe judge’s actual test: is a randomly sampled frame identifiable as a specific corner (width x radius x gradient) | 29% w9·straight·flat | 18% w8·straight·flat | 28% w10·straight·flat | 22% w8·straight·flat |
| Kinks 0authored radii only — no spline artefacts | 0 | 0 | 0 | 0 |
| Elevation, gradient <= 18%17-18% is the shipped, proven range | peak 28 u, 16.7% | peak 26.3 u, 17% | peak 39.2 u, 13.5% | peak 20.9 u, 17% |
| No blind cornershard gate: 0.8 s of announcement | worst 1.93s | worst 0.82s | worst 1.3s | worst 0.52s |
| Every corner >= 1.5 s announced--strict-sight, the bar a NEW layout is authored to | all clear | 2 under | 2 under | 1 under |
| Sight on the overtaking straight >= 2.5 syou cannot set up a pass into road you cannot see | 2.89s mean | 2.72s mean | 2.86s mean | 1.65s mean |
| Road/terrain value >= 20%--strict-contrast; the shipped track fails this too | 8% (kerb 81%) | 8% (kerb 81%) | 8% (kerb 81%) | 8% (kerb 81%) |
What all three miss, identically, and on purpose. The road/terrain value gate fails on every segment of every candidate for exactly the reason it fails on Comeback City today: the road solves to luminance 46.9 against a 38.5–43.4 verge, and what actually carries it in every shipped frame is the painted red/white kerb at 81% separation. These candidates borrow Comeback City's palette verbatim so their contrast verdicts are the reference build's verdicts. Authoring new palette values is the step after a layout is picked — doing it now would mean tuning three palettes to throw two away.
Handedness is topology, not tuning. A smooth convex loop turns one way; the other direction only appears where the road is concave. That is why A lands at 31% however it is tuned, why B's slalom of square corners reaches 35%, and why C — which crosses itself, so it has to turn both ways to close — gets 44% for free. If both drift directions matter, that is a reason to prefer B or C, not a number to nudge.
Width is the third axis, and it needs one runtime line before it fully lands. The blind-A/B judge picked this build 18/18 and still said all eighteen frames read as "one wide constant-radius boulevard". That is measurable: the runtime smooths the road-width table with a kernel defined as a fraction of a LAP (14 passes over 224 samples), so on a 4x lap every width transition stretches to four times its shipped world length. Authored width range went UP on all three candidates and the width you could see in a frame went DOWN — the fastest 8-unit narrowing took 0.66 / 0.57 / 1.37 s against the shipped track's 0.29 s. This round fixed the authoring half: the width step is now AT the signature corner and big enough to survive the smoother, so all three clear the gate at 0.56-0.57 s. The other half is one line in the build — scale the width table's resolution with lap length so the kernel stays ~35 world units — which takes the same three layouts to 0.16 s and doubles the width contrast inside a frame. Whoever builds the picked layout should do that first; it is quantified in section 8 of docs/TRACK_CANDIDATES.md.
What happens next. Pick a letter. Only then: author the palette against --strict-contrast, place the coin rows (~30, scaling with length, still free — one InstancedMesh), and build geometry. Re-run the previewer afterwards so the JSON report lands in the record next to the frames.